シェル上で用いることができる変数、位置パラメータについて取り上げます。
位置パラメータは、シェルスクリプトやシェル関数の引数の受け渡しに用いられます。
1以上の数字の頭に$をつけることで参照できます。
例を示します。
#!/bin/bash
echo "$1"
echo "$2"
echo "$3"
このプログラムを実行すると
$ ./sample.sh one two three
one
two
three
このとき、one が$1でtwoが$2でthreeが$3に渡され、echoコマンドで出力されています。
Pythonでいうsys.argvのような機能です。
因みに、$0にはシェルスクリプト名が渡されます。
注意点
位置パラメータはシェル変数のように値を直接代入ができません。
位置パラメータの値を変更するにはset コマンドを使います。
また、10以上の引数を渡すときは注意が必要です。
以下の例は、setコマンドで11個の位置パラメータを作成しました。
$ set one two three four five six seven eight nine ten eleven
10と11個目の引数を見てみましょう
$ echo $10
one0
$ echo $11
two1
10以上の引数を出力したいときは、”{}”で囲む必要があります。
$ echo ${10}
ten
$ echo ${11}
eleven
$@
最後に特殊パラメータである$@を紹介します。
$@は、全ての位置パラメータを引き渡します。
以下は例です。
$ set one two three four five six seven eight nine ten eleven
$ echo $@
one two three four five six seven eight nine ten eleven
まとめ
シェルスクリプトで$のあとに数字出てきたら位置パラメータであり、引数を参照しています。
リンク