testコマンド 複合コマンド・グループ化

複合コマンド [[ ]]

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

グループ化

丸かっこ"()"でのグループ化でも複合コマンド"[[ ]]"は便利に使える。 丸かっこ"()"でくるんでグループ化する場合、通常は、

 [ \( "a" = "a" \) -a \( "b" = "b" \) ]; echo $?

のように丸かっこ"()"をエスケープする必要がある。複合コマンド"[[ ]]"を使えば、

 [[ ( "a" = "a" ) && ( "b" = "b" ) ]]; echo $?

のように書ける。


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS