[alt.sources] returning values from an rsh.

maart@cs.vu.nl (Maarten Litmaath) (11/22/90)

In article <FRIDMAN.90Nov20121605@cs-sun-aa.cs>,
	fridman@cs-sun-aa.cs (fridman) writes:
)
)I need a way for an rsh to return the status of the last
)command that it executed on the remote machine. 

: This is a shar archive.  Extract with sh, not csh.
: This archive ends with exit, so do not worry about trailing junk.
: --------------------------- cut here --------------------------
PATH=/bin:/usr/bin:/usr/ucb
echo Extracting 'ersh'
sed 's/^X//' > 'ersh' << '+ END-OF-FILE ''ersh'
X#!/bin/sh
X# @(#)ersh 2.1 89/12/07 Maarten Litmaath
X# this rsh front-end returns the exit status of the remote command
X# works OK with sh/csh-compatible shells on the remote side (!)
X# beware of `funny' chars in `status' when working in sh-compatible shells
X# if there is no remote command present, /usr/ucb/rlogin is invoked
X# usage: see rsh(1)
X
Xhostname=
Xlflag=
Xnflag=
X
Xcase $1 in
X-l)
X	;;
X*)
X	hostname=$1
X	shift
Xesac
X
Xcase $1 in
X-l)
X	lflag="-l $2"
X	shift 2
Xesac
X
Xcase $1 in
X-n)
X	nflag=-n
X	shift
Xesac
X
Xcase $hostname in
X'')
X	hostname=$1
X	shift
Xesac
X
Xcase $# in
X0)
X	exec /usr/ucb/rlogin $lflag $hostname
Xesac
X
XAWK='
X	NR > 1 {
X		print prev;
X		prev = $0;
X		prev1 = $1;
X		prev2 = $2;
X	}
X	NR == 1 {
X		prev = $0;
X		prev1 = $1;
X		prev2 = $2;
X	}
X	END {
X		if (prev1 ~ /[0-9]*[0-9]0/)
X			exit(prev1 / 10);
X		if (prev1 == "0")
X			exit(prev2);
X		print prev;
X		exit(1);
X	}
X'
X
Xexec 3>&1
X
X/usr/ucb/rsh $hostname $lflag $nflag "${*-:}"'; sh -c "echo $?0 $status >&2"' \
X	2>&1 >&3 | awk "$AWK" >&2
+ END-OF-FILE ersh
chmod 'u=rwx,g=rx,o=rx' 'ersh'
set `wc -c 'ersh'`
count=$1
case $count in
981)	:;;
*)	echo 'Bad character count in ''ersh' >&2
		echo 'Count should be 981' >&2
esac
exit 0
--
"Please DON'T BREAK THE CHAIN!  Terry Wood broke the chain and ended up
writing COBOL PROGRAMS.  Three days later, he found his Blue Star Tatoo
Letter, made 20 copies and mailed them out.  He found a good job writing
compilers."  --  tjw@unix.cis.pitt.edu (Terry J. Wood)