Do you need to pick up the last parameter $1, $2 ... from the parameter list on the command line? It looks like eval \$$# would do it:
eval Section 27.8
$ set foo bar baz $ eval echo \$$# baz
except for a small problem with sh argument syntax:
$ set m n o p q r s t u v w x $ echo $11 m1
$11 means ${1}1, not ${11}. Trying ${11} directly gives bad substitution. (More recent shells, such as bash, do support the ${11} syntax, however, to arbitrary lengths. Our copy of bash, for example, allowed at least 10240 command line arguments to set with recall of the last via ${10240}). Your mileage may vary.
The only reliable way to get at the last parameter in the Bourne shell is to use something like this:
for i do last="$i"; done
The for loop assigns each parameter to the shell variable named last; after the loop ends, $last will have the last parameter. Also, note that you won't need this trick on all sh-like shells. The Korn shell, zsh, and bash understand ${11}.
-- CT
Copyright © 2003 O'Reilly & Associates. All rights reserved.