シェルスクリプトの特殊な変数
■特殊な変数シェルスクリプト実行時に指定された引数は位置パラメータと呼ばれる特殊な変数に自動的に設定される。
$# | 実行時に指定された引数の数を表す変数 |
---|---|
$@ | シェルスクリプト実行時に指定された全パラメータが設定される変数 $*も基本的には同様の動きをする |
$0 | 実行時のコマンド名が設定される変数 |
$1 ~ $n | シェルスクリプト実行時に指定した引数の値がそれぞれ設定される変数 10番目以降の引数参照時は ${10} のように「{}」を使用する必要がある。 |
$? | 最後に実行したコマンドが返したexit値が入っている。正常終了時は0を返す。 |
$$ | シェルのプロセスIDが入っている。 |
$- | シェルが起動されたときに指定されたフラグ、 又はsetコマンドで設定されたフラグ値が入っている。 |
引数を使った実例
■引数と一つずつ変数に入れ、残りすべてをまとめて変数に入れるlocal U=$1 ; shift # user local PW=$1 ; shift # password local H=$1 ; shift # host local LCMD=$*※コマンドなど空白がある場合に一つの引き通にまとめられるので便利
■引数の数をチェックする
実行するシェルスクリプトの引数をチェックする例。
・引数は1つまたは2つ引き渡すスクリプト
if [ $# -lt 1 -o $# -gt 2 ]; then echo "Usage: $0 expr [directory]" exit 1 fi
![]() |
![]() |
小さな会社の新米サーバー/インフラ担当者のためのLinuxの常識 |
