引数が可変のとき
shiftコマンドを使用することで、シェルの引数を順に第一引数として呼び出すことができます
shiftコマンドとは
引数を1つずらす。
シェル・スクリプトに与えられた引数を1つずつ処理したい場合に役立つ。shiftの後に自然数Nを指定すると,その数だけ引数をずらす。つまりN+1番目の引数が最初の引数となる。
サンプルスクリプト(shift.sh)
#!/bin/sh for i in `seq 1 ${#}` #引数の数だけループさせる do echo ${1} #第一引数を表示 shift #shift(ずらす) done
実行結果
[tomozo@CentOS ~]$ ./shift.sh #引数が無い場合は何もしない [tomozo@CentOS ~]$ ./shift.sh 1 #引数が1個だけの場合は、1個だけ表示 1 [tomozo@CentOS ~]$ ./shift.sh 1 hoge "hogehoge" #引数が3個の場合は3個表示して終了 1 hoge hogehoge [tomozo@CentOS ~]$ ./shift.sh 1 2 3 4 5 6 7 8 9 10 #引数が10個の場合は10個表示して終了 1 2 3 4 5 6 7 8 9 10 [tomozo@CentOS ~]$