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 $? のように書ける。 参考 |
|