KornShell (ksh) で次のスニペットが失敗しました。
var1="1"
var2="2"
if [ ( "$var1" != "" -o "$var2" != "") -a ( "$var1" = "$var2" -o " "$var1" = "x") ]; then
echo "True"
else
echo "False"
fi
ksh: 構文エラー: `"$var1"' 予期しない
私が理解しているように、var1が認識されないサブシェルで括弧が実行されるため、これは失敗します。では、角括弧内で一連の条件をグループ化するにはどうすればよいでしょうか?
注意:私はすでに次の解決策を知っていますが、それらを使用したくありません。
- 条件を個別のネストされた if ステートメントに入れます。
- 条件を最適化/再配置して、それらを 1 つのセットにまとめます。