9.3.2 :コマンド(引数を展開する)
形式
: [arguments]
機能
引数を展開し,終了コード0を返すコマンドです。
例えばif文では,else節やelif節は省略できてもthen節は省略できません。このときthen節には,条件に合致した場合は何もしないことを示す:コマンドを次のように指定します。
if [ 条件式 ]; then : # 条件式の結果が真の場合,何もしない。 else cmd1 # 条件式の結果が偽の場合,cmd1を実行する。 fi
引数
- arguments
指定したargumentsは次のように展開されます。
- ジョブ定義スクリプトの指定例
set -x NUMBER=1 : $NUMBER
- 標準エラー出力への出力結果
+ NUMBER=1 + : 1 # 変数NUMBERの展開結果が出力される
そのため,引数argumentsに変数置換を指定することで,変数に値が格納されているか確認し,格納されていない場合は値を代入する処理ができます。
- ジョブ定義スクリプトの指定例
STRING01=ABC : ${STRING01:=DEF} # 変数STRING01はABCが格納されているため,そのまま : ${STRING02:=GHI} # 変数STRING02は未定義のため,GHIが代入される echo $STRING01 $STRING02 # 標準出力に"ABC GHI"が出力される
ただし,引数argumentsに${variable:?word}または${variable?word}の書式で変数置換が指定されていて,variableに値が格納されていない場合は,終了コード1でエラー終了します。
なお,このコマンドには指定可能なオプションが存在しません。オプションが指定された場合でも無視して処理を実行します。
終了コード
終了コード |
意味 |
---|---|
0 |
正常終了 |
1 |
エラー終了
|
注意事項
この特殊組み込みコマンドは,コマンドの構文を誤るとコマンドを実行しているシェルが終了します。
使用例
引数だけを展開します。
: $test