⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rnmail.sh

📁 早期freebsd实现
💻 SH
字号:
case $CONFIG in    '') . ./config.sh ;;esacecho "Extracting Rnmail (with variable substitutions)"$spitshell >Rnmail <<!GROK!THIS!$startsh# $Id: Rnmail.SH,v 3.0 1992/02/23 21:25:39 davison Trn $# # This software is Copyright 1991 by Stan Barber. ## Permission is hereby granted to copy, reproduce, redistribute or otherwise# use this software as long as: there is no monetary profit gained# specifically from the use or reproduction of this software, it is not# sold, rented, traded or otherwise marketed, and this copyright notice is# included prominently in any copy made. ## The author make no claims as to the fitness or correctness of this software# for any use whatsoever, and it is provided as is. Any use of this software# is at the user's own risk. ### syntax: Rnmail -h headerfile [oldart]		or#         Rnmail destination-list 		or just#         Rnmailexport PATH || (echo "OOPS, this isn't sh.  Desperation time.  I will feed myself to sh."; sh \$0; kill \$\$)# System dependenciesmailer="${mailer-/bin/mail}"# if you change this to something that does signatures, take out signature code# your organization nameorgname="$orgname"# what pager you use--if you have kernal paging use catpager="\${PAGER-$pager}"# how you derive full names, bsd, usg, or othernametype="$nametype"# default editordefeditor="$defeditor"# where the non-publics arernlib=$privlib# how not to do a newline with echon="$n"c="$c"test=${test-test}sed=${sed-sed}echo=${echo-echo}cat=${cat-cat}grep=${grep-grep}rm=${rm-rm}!GROK!THIS!case "$ignoreorg" indefine) $spitshell >>Rnmail <<'!NO!SUBS!'orgname=${NEWSORG-$orgname}!NO!SUBS!	;;*)	$spitshell >>Rnmail <<'!NO!SUBS!'orgname=${NEWSORG-${ORGANIZATION-$orgname}}!NO!SUBS!	;;esac$spitshell >>Rnmail <<'!NO!SUBS!'dotdir=${DOTDIR-${HOME-$LOGDIR}}tmpart=$dotdir/.letterspeller=$rnlib/Spellerheaderfile=""case $# in0) ;;*)  case $1 in    -h)	headerfile="$2"	case $# in	3) oldart=$3 ;;	esac	;;    esac    ;;esaccase $headerfile in'')    case $# in    0)	to=h	while $test "$to" = h ; do	    $echo ""	    $echo $n "To: $c"	    read to	    case $to in	    h)		$cat <<'EOH'Type the net address of those people to whom you wish the message sent.Additional recipients may be added on the Cc: line when you edit.Separate multiple addresses with spaces.EOH		;;	    esac	done	;;    *)	to="$*"	;;    esac    to=`$echo "$to" | $sed 's/  */ /g'`    title=h    while $test "$title" = h ; do	$echo ""	$echo $n "Title/Subject: $c"	read title	case $title in	h)	    $cat <<'EOH'Type the title for your message.  EOH	    ;;	esac    done# now build a file with a header for them to edit        case $orgname in    /*) orgname=`$cat $orgname` ;;    esac    $sed -e '/^Reply-To: $/d' > $tmpart <<EOHeaderTo: $toSubject: $titleOrganization: $orgnameReply-To: $REPLYTOCc:Bcc:EOHeader    ;;*)    $cat < $headerfile  > $tmpart    ;;esacfile=hwhile $test "$file" = h ; do    $echo ""    $echo $n "Prepared file to include [none]: $c"    read file    case $file in    h)	$cat <<'EOH'If you have already produced the body of your message, type the filenamefor it here.  If you just want to proceed directly to the editor, type aRETURN.  In any event, you will be allowed to edit as many times as youwant before you send off the message.EOH	;;    '')	$echo "" >> $tmpart	state=edit	;;    *)	$cat $file >>$tmpart	state=ask	;;    esacdone$echo ""while true ; do    case $state in    edit)	rescue="sleep 1; $cat $tmpart >>${HOME-$LOGDIR}/dead.letter ; $echo Message appended to ${HOME-$LOGDIR}/dead.letter ; exit"	trap "$rescue" 1	trap : 2	case "${VISUAL-${EDITOR-}}" in	'')	    tmp=h	    ;;	*)	    tmp=''	    ;;	esac	while $test "$tmp" = h ; do	    $echo $n "Editor [${VISUAL-${EDITOR-$defeditor}}]: $c"	    read tmp	    case $tmp in	    h)		$cat <<'EOH'Type a return to get the default editor, or type the name of the editor youprefer.  The default editor depends on the VISUAL and EDITOR environmentvariables.EOH		;;	    '')		;;	    *)		VISUAL=$tmp		export VISUAL		;;	    esac	done	${VISUAL-${EDITOR-$defeditor}} $tmpart $oldart	trap "$rescue" 2	state=ask	;;	    ask)	$echo ""	$echo $n "Check spelling, Send, Abort, Edit, or List? $c"	read ans		case $ans in	a*)	    state=rescue	    ;;	e*)	    set $ans	    case $# in	    2)  VISUAL="$2" ;;	    esac	    state=edit	    ;;	l*)	    $pager $tmpart	    state=ask	    ;;	s*)	    state=send	    ;;	c*)	    $speller $tmpart	    state=ask	    ;;	h*)	    $cat <<'EOH'Type c to check the message's spelling, s to send the message, a to abortand append the message to dead.letter, e to edit the message again, or lto list the message with your pager.To invoke an alternate editor, type 'e editor'.EOH	esac	;;        send)	if $test -f $dotdir/.signature; then	    $echo $n "Append .signature file? [y] $c"	    read ans	    case $ans in	    ''|y*)		$echo "-- " >> $tmpart		cat $dotdir/.signature >> $tmpart		;;	    esac	fi	case $mailer in	*sendmail)	    $mailer -t <$tmpart	    ;;# but recmail does not know about Bcc, alas	*recmail)	    $mailer <$tmpart	    ;;	*)	    set X `$sed <$tmpart -n -e '/^To:/{' -e 's/To: *//p' -e q -e '}'`	    shift	    set X "$@" `$sed <$tmpart -n -e '/^Cc:/{' -e 's/Cc: *//p' -e q -e '}'`	    shift	    set X "$@" `$sed <$tmpart -n -e '/^Bcc:/{' -e 's/Bcc: *//p' -e q -e '}'`	    shift	    $grep -v "^Bcc:"  <$tmpart | $mailer "$@"	    ;;	esac	case $? in	0)	    state=cleanup	    ;;	*)	    state=rescue	    ;;	esac	;;    rescue)	$cat $tmpart >> ${HOME-$LOGDIR}/dead.letter	$echo "Message appended to ${HOME-$LOGDIR}/dead.letter"	$echo "A copy may be temporarily found in $tmpart"	exit	;;    cleanup)	case "${MAILRECORD-none}" in	none)	    ;;	*)	    set X ${USER-${LOGNAME-`who am i`}} unknown	    shift	    $rnlib/mbox.saver $tmpart "." "." 0 0 Pnews $MAILRECORD "From $1 `LANG= date`"	    if $test $? -eq 0 ; then		$echo "Message appended to $MAILRECORD"	    else		$echo "Cannot append to $MAILRECORD"	    fi	    ;;	esac	exit	;;    esacdone!NO!SUBS!$eunicefix Rnmailchmod 755 Rnmail

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -