$1
est le premier argument.
$@
est tous.
Comment trouver le dernier argument passé à un script shell?
${!#}
. Testez-le en utilisant bash -c 'echo ${!#}' arg1 arg2 arg3
. Pour bash , ksh et zsh , la réponse de Dennis Williamson propose ${@: -1}
. De plus ${*: -1}
peut également être utilisé. Testez-le en utilisant zsh -c 'echo ${*: -1}' arg1 arg2 arg3
. Mais cela ne fonctionne pas pour dash , csh et tcsh .
${!#}
, contrairement à ${@: -1}
, fonctionne également avec l'expansion des paramètres. Vous pouvez le tester avec bash -c 'echo ${!#%.*}' arg1.out arg2.out arg3.out
.