$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
.