$1
to pierwszy argument.
$@
to wszystko.
Jak mogę znaleźć ostatni argument przekazany do skryptu powłoki?
${!#}
. Przetestuj za pomocą bash -c 'echo ${!#}' arg1 arg2 arg3
. Dla bash , ksh i zsh , w odpowiedzi Dennis Williamsona proponuje ${@: -1}
. Ponadto ${*: -1}
można również użyć. Przetestuj za pomocą zsh -c 'echo ${*: -1}' arg1 arg2 arg3
. Ale to nie działa dla dash , csh i tcsh .
${!#}
, w przeciwieństwie do ${@: -1}
, działa również z rozszerzaniem parametrów. Możesz to przetestować bash -c 'echo ${!#%.*}' arg1.out arg2.out arg3.out
.