|
■
特殊な変数について
あらかじめ定義されている特別な意味を持つ変数について説明します。また、スクリプトに引数を渡す方法も説明します。
最初に、特別な意味を持つあらかじめ定義されている変数の一覧を示します。
| $? |
最後に実行したコマンドのexit値
|
| $$ |
シェル自身のプロセスID
|
| $! |
シェルが最後に起動したバックグラウンドプロセスのプロセスID
|
| $- |
シェルの起動時のフラグ、setコマンドを使って設定したフラグの一覧
|
| $n |
スクリプトに渡された n番目の引数 (9個まで引数を取れる。$0はスクリプトの名前、 $1は第1引数、…、$9は第9引数)
|
| $# |
シェルに対する引数の個数(引数がない場合は0)
|
| $* |
全引数リスト。ダブルクォートで囲んだ場合、"$1 $2 … $n" と全引数を一つにくっつけた物に展開される。
|
| $@ |
全引数リスト。ダブルクォートで囲んだ場合、"$1" "$2" … "$n" とそれぞれの引数を個別にダブルクォートで囲んで展開する。
|
ここでは上にあげた特殊な変数のすべての例をあげることはしませんが、これらの変数を使ったよく使われる応用は、このサイトの「サンプル &
Tips」に記しました。必要に応じてご参照下さい。
さて、シェルスクリプトへの引数の渡し方を見てみましょう。
ファイル名 : test4.sh
1: #!/usr/bin/sh
2: echo "引数の数は $# 個です。"
3: echo "スクリプトの名前は $0 です。"
4: echo "1番目の引数は $1 です。"
5: echo "2番目の引数は $2 です。"
|
実行結果は下のようになります。
1: $ chmod u+x test4.sh
2: $ test4.sh arg1 arg2
3: 引数の個数は 2 個です。
4: スクリプトの名前は test4.sh です。
5: 1番目の引数は arg1 です。
6: 2番目の引数は arg2 です。
|
このように、スクリプトに引数を渡すには、スクリプトファイル名の後に、半角スペースを区切りとして、与える引数を並べていきます。
引数をスクリプト内で使用するには、$0, $1, ... $8, $9 の特殊な変数を使用します。また、実行結果の3行目でわかるように $#
は与えられた引数の個数、4行目で分かるように $0 はスクリプト名をあらわします。
|