$1è il primo argomento.
$@sono tutti loro.
Come posso trovare l'ultimo argomento passato a uno script di shell?
${!#}. Provalo usando bash -c 'echo ${!#}' arg1 arg2 arg3. Per bash , ksh e zsh , la risposta di Dennis Williamson propone ${@: -1}. Inoltre ${*: -1}può anche essere usato. Provalo usando zsh -c 'echo ${*: -1}' arg1 arg2 arg3. Ma questo non funziona per dash , csh e tcsh .
${!#}, a differenza ${@: -1}, funziona anche con l'espansione dei parametri. Puoi provarlo con bash -c 'echo ${!#%.*}' arg1.out arg2.out arg3.out.