シェルスクリプトを実装する際、引数を使って処理をしたいことがあると思います。
シェルスクリプトの引数の使い方はちょっと特殊なので、解説していこうと思います。
<スポンサードリンク>
シェルスクリプトの引数の指定方法
シェルスクリプトでは以下の特別な変数があり、引数の指定の仕方も以下の特殊な変数の1部になります。
シェルスクリプトの引数の指定は、2行目の$1 ~ $9です。
変数 | 機能 |
$0 | スクリプト名 |
$1 ~ $9 | 引数、1番目の引数を$1 、2番目の引数を$2 でアクセスする |
$# | スクリプトに与えた引数の数 |
$* | 全部の引数をまとめて1つとして処理 |
$@ | 全部の引数を個別として処理 |
$? | 直前実行したコマンドの終了値(0は成功、1は失敗) |
$$ | このシェルスクリプトのプロセスID |
$! | 最後に実行したバックグラウンドプロセスID |
シェルスクリプトの引数を使った実装サンプル
シェルスクリプト
#!/bin/sh echo "[\$1] 1番目の引数 : $1" echo "[\$2] 2番目の引数 : $2" echo "[\$3] 3番目の引数 : $3" echo "[\$4] 4番目の引数 : $4" echo "[\$5] 5番目の引数 : $5" echo "[\$6] 6番目の引数 : $6" echo "[\$7] 7番目の引数 : $7" echo "[\$8] 8番目の引数 : $8" echo "[\$9] 9番目の引数 : $9" echo "[\$#] 引数の数 : $#" echo "[\$*]: $*" echo "[\$@]: $@"
実行結果
#!/bin/sh echo "[\$1] 1番目の引数 : $1" echo "[\$2] 2番目の引数 : $2" echo "[\$3] 3番目の引数 : $3" echo "[\$4] 4番目の引数 : $4" echo "[\$5] 5番目の引数 : $5" echo "[\$6] 6番目の引数 : $6" echo "[\$7] 7番目の引数 : $7" echo "[\$8] 8番目の引数 : $8" echo "[\$9] 9番目の引数 : $9" echo "[\$#] 引数の数 : $#" echo "[\$*]: $*" echo "[\$@]: $@"
シェルスクリプトの引数をfor文で処理する
引数をfor文で処理したい時は以下のようにします。
シェルスクリプト
#!/bin/sh count=1 # 引数全体をfor文で処理 for arg in "$@" do # 引数の値を出力 echo "引数${count}:${arg}" count=`expr ${count} + 1` done
出力結果
$ bash test.sh 1 2 3 4 5 6 7 8 9 引数1:1 引数2:2 引数3:3 引数4:4 引数5:5 引数6:6 引数7:7 引数8:8 引数9:9
シェルスクリプトで引数を使いたい場合は、上記のように実装することが出来ます。