シェルスクリプトの特殊な変数

特殊な変数
シェルスクリプト実行時に指定された引数は位置パラメータと呼ばれる特殊な変数に自動的に設定される。
$# 実行時に指定された引数の数を表す変数
$@ シェルスクリプト実行時に指定された全パラメータが設定される変数
$*も基本的には同様の動きをする
$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 




[インフラエンジニア教本 ~ネットワーク構築技術解説]の書籍横断比較とレビュー

インフラエンジニア教本 ~ネットワーク構築技術解説
著者:
出版日:2014-12-05
出版社:技術評論社

[小さな会社の新米サーバー/インフラ担当者のためのLinuxの常識]の書籍横断比較とレビュー

小さな会社の新米サーバー/インフラ担当者のためのLinuxの常識
著者:中島 能和
出版日:2014-08-22
出版社:ソシム




Google+