引数が可変の場合の処理の仕方

引数が可変のとき

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 ~]$