Bashの特殊な変数
Bashの特殊な変数について。
変数 | 説明 |
---|---|
$@ | スクリプトの引数配列 |
$数値 | スクリプトの引数 |
$! | 直前に実行したプロセスのID |
$@
$@は、スクリプトの引数の配列を示す。
各引数は空白で連結されている。
以下は、引数をそのまま出力するサンプル。
1 2 | #!/bin/bash echo "args = $@" |
実行結果。
1 2 | -bash-3.2$ ./test_args.sh a b c args = a b c |
$数値
$数値は、スクリプトの引数の1つを示す。
どの引数を指定するかは、数値で指定する。
$0は、スクリプトの実行パスを示す。
以下は、$0から$3までを出力するだけのサンプル。
1 2 3 4 5 | #!/bin/bash echo "arg[0] = $0" echo "arg[1] = $1" echo "arg[2] = $2" echo "arg[3] = $3" |
実行結果。
1 2 3 4 5 | -bash-3.2$ ./test_arg_split.sh a b arg[0] = ./test_arg_split.sh arg[1] = a arg[2] = b arg[3] = |
引数は2つなので、$3は空白になっている。
$!
$!は、直前に実行したプロセスのプロセスIDが格納されている。
例えば、以下のようにすると、JavaプログラムのプロセスIDを出力できる。
1 2 3 4 | #!/bin/bash java test.sample.MyApp & pid=$! echo $pid |
プロセスIDを取得できると後々、killすることも可能。