「Shellスクリプトでn番目以降の引数全てを取得する」で、「Shellスクリプトで、第一番目の引数だけを消費して、残りの引数はその先のプログラムに渡したい」ときに使えると書きましたが、そのものズバリ引数を消費する機能があるんですね。
shift
を利用すると、引数($@
)の中身が、先頭から一個後ろにズレます。
例えば次のような関数を作るとすると、
echo_all() { if [ $# -gt 0 ]; then echo $1 shift echo_all $@ else echo "Fin." fi }
次のように出力されます。
$ echo 1 2 3 4 1 2 3 4 Fin.