bashの特殊変数
シェルスクリプトでは引数等を便利に扱えるように予め容易されている変数があります。 スクリプトを書く中でも重要な変数なので、しっかり覚えたいです。
特殊変数の意味
表にしてみました。詳しくはやはりbashのmanを見るのが一番かと思いマス。
特殊変数 | 意味 |
---|---|
$# | 引数の個数 |
$1 ~ $n | 引数(1個目,,,n個目) |
$* | シェルスクリプト実行時全パラメータが設定される変数 |
$@ | シェルスクリプト実行時全パラメータが設定される変数(二重引用符で囲んだ時に$*と挙動が異なる) |
$0 | 実行時のコマンド名 |
$? | コマンドの戻り値 |
$- | setで設定されたオプション |
表示テスト
試しにこんな感じのスクリプトを書いてみました。
#!/bin/bash
echo $#
echo $4
echo $*
echo $@
echo $0
echo $?
echo $-
こんな感じの表示なりました。
$ bash arsh.sh parm1 pram2 pram3 pram4
4
pram4
parm1 pram2 pram3 pram4
parm1 pram2 pram3 pram4
arsh.sh
0
hB
シェルスクリプトで書いたとおり、上から順に
- 引数が4つであること
- 引数の4つ目
- 全引数
- 全引数
- コマンド名
- 戻り値
- オプション
で出力されていますね。
頑張ってスクリプトたくさん書こうっと。