シェル変数のデフォルト値を設定する、未初期化時にエラーメッセージを出力してスクリプトを強制終了する
二十五日半狂乱4日目(の分)の記事
前回引用したkilltreeスクリプトの中に以下のようなコードがあった.
local _sig=${2:-TERM}
この${2:-TERM}は、変数展開されたタイミングで、$2に値が設定されていない場合にTERMを出力する.
すなわち、結果的に$2が空だった場合は変数_sigにTERMが代入される.
なのでkilltreeは第二引数でシグナルを指定せずに実行したらデフォルトでkill -TERM [pid]が実行される.
$ bash killtree.bash 4003 kill -TERM 4004 kill -TERM 4005 kill -TERM 4006 kill -TERM 4007 kill -TERM 4008 kill -TERM 4003 [2]+ Stopped bash mkpstree.bash
手元にあるUNIXシェルスクリプトコマンドブックを見てみると、同書ではこの機能を「拡張的な変数展開」と呼んでいて、他にも便利な機能が色々解説されていた.

- 作者: 山下哲典
- 出版社/メーカー: ソフトバンククリエイティブ
- 発売日: 2010/01/28
- メディア: 単行本
- 購入: 2人 クリック: 46回
- この商品を含むブログ (2件) を見る
買った技術書の後半を読み切らずに本棚へしまっていたことが白日の下に晒されつつ、便利な変数展開をメモ.
続きを読む