Bash > shiftによる引数の操作

更新日 2012-02-22
広告
'shift'の使い方を紹介します。shiftを使うと、スクリプトに渡した引数を「順番に処理する」ことが簡単にできます。
別の記事でも紹介したように、bashスクリプトを実行する際に、スクリプトに渡した引数は、 '$数値' という特殊変数として扱われます。例えば、最初の引数は'$1'、2番目の引数は'$2'というふうに扱います。
'shift'は、この特殊変数をずらします。つまり、'shift'を実行すると、'$2'の値は'$1'となり、'$3'の値は'$2'となり、、という変数の代入処理が行われます。文字通り、変数の値をシフトするわけです。
以下のサンプル test-shift.sh は、'shift'を実行しながら、'$1'の値を出力しつづけます。
#!/bin/bash

while [ -n "$1" ] # $1が空っぽならループ終了
do
    echo "param = $1"
    shift
done
これに、適当な引数を与えて実行してみます。
$ ./test-shift.sh a b c
param = a
param = b
param = c
'shift'により、3つの引数が「シフト」されている様子がわかります。
広告
お問い合わせは sweng.tips@gmail.com まで。
inserted by FC2 system