* testコマンド 複合コマンド・グループ化 [#z5e6b51c]

** 複合コマンド [[ ]][#i02e55c9]
 [ 1 -lt 2 ]; echo $? # => 本来は-ltで数値比較する 
 [ 1 < 2 ]; echo $?   # => "<"で比較するとリダイレクトと判断されてエラーが起きる
 [ 1 \< 2 ]; echo $?  # => "<"をバックスラッシュでエスケープするとエラーを回避できる
 [[ 1 < 2 ]]; echo $? # => 複合コマンド"[[ ]]"ならエスケープしなくてもエラーが起きない

** グループ化 [#cf5bef82]
丸かっこ"()"でのグループ化でも複合コマンド"[[ ]]"は便利に使える。
丸かっこ"()"でくるんでグループ化する場合、通常は、
 [ \( "a" = "a" \) -a \( "b" = "b" \) ]; echo $?
のように丸かっこ"()"をエスケープする必要がある。複合コマンド"[[ ]]"を使えば、
 [[ ( "a" = "a" ) && ( "b" = "b" ) ]]; echo $?
のように書ける。

** 参考 [#r60c0c21]
- http://www.ibm.com/developerworks/jp/linux/library/l-bash-test.html
- http://lagendra.s.kanazawa-u.ac.jp/ogurisu/manuals/sh-text/sh/node48.html


トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS