記法 | 意味 | 他の書き方 |
---|
${AAA:-デフォルト値} | カラの場合にデフォルト値を返す | |
${AAA:=デフォルト値} | カラの場合にデフォルト値を代入 | |
${AAA:+マスキング} | カラでない場合に変更後の値を返す | |
${AAA%/*} | 後方を置換 | dirname $AAA |
${AAA##/} | 前方を置換 | basename $AAA |
${AAA^^} | 大文字に変換 | `echo "$AAA" |
${AAA,,} | 小文字に変換 | `echo "$AAA" |
LENGTH=${#AAA} | 文字列長 | |
- 覚えられないし、急に出てきたときも読めなさそうなので、基本使わない方針にしようかな。。
%
, #
の1個は最短マッチ、2個は最長マッチ
用例:
記法 | 意味 |
---|
"$@" | "" で囲った単位で引数を取得 |
$@ | 引数のスペース区切り ("" を無視) |
$* | 引数のスペース区切り ("" を無視) |
記法 | 意味 |
---|
OPTIONS=("${@:4}") | 引数の4つめ以降を配列に格納 |
記法 | 意味 |
---|
$? | 終了コード (正常 = 0) |
$PIPESTATUS | 各パイプの終了コード (配列) |
記法 | 意味 |
---|
$0 | コマンドラインから呼び出したファイル名 |
$BASH_SOURCE | ソースファイル名 |
- zsh だと
$0
が $BASH_SOURCE
相当になるらしい
呼び出し方 | $0 | $BASH_SOURCE |
---|
コマンドラインから ./親.sh | ./親.sh | ./親.sh |
./親.sh から . 子.sh | ./親.sh | 子.sh |
./親.sh から ./子.sh | ./子.sh | ./子.sh |