Finding the last arg

Maarten Litmaath maart at cs.vu.nl
Fri Dec 28 09:15:52 AEST 1990


# How to get the last argument of a shell script reliably.
# If you are sure the number of arguments is in [1-9], you can use this:
#
#	eval last=\$$#
#
# The general (backquote) solution works for ANY number of arguments.
# In POSIX-compatible shells this works for any $#:
#
#	eval last=\${$#}

set a b c d e f g h i j k l m -n	# For example.

case $# in
0)
	# So the user tried to be funny; let's give him a little surprise.
	exec kill -SYS $$
	;;
[1-9])
	eval last=\$$#
	;;
*)
	last=`
		n=$#
		set '' ${1+"$@"}
		shift $n
		echo -n "$1"
	`
esac

echo "last=|$last|"
--
  _ d         _\  _\      2
 ih -- Y = (c A . p  + m c B) Y
    dt                  0



More information about the Comp.unix.shell mailing list