Hitachi

Advanced Shell 


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

エラー終了

  • 引数に${variable:?word}の書式による変数置換が指定されていてvariableが定義されていない,またはvariableに値が格納されていません。

  • 引数に${variable?word}の書式による変数置換が指定されていてvariableが定義されていません。

注意事項

使用例