Bash で次のスクリプトを作成しましたが、目的の出力が出力されません。
a="abc"
if (test "$a"="$a ") then
echo "true "
else
echo "false "
fi
このスクリプトは印刷されるはずfalse
ですが、印刷されません。私はBashスクリプトを初めて使用するので、印刷されない理由を誰か教えてもらえますfalse
か?
test
引数を 1 つだけ指定しています。"$a"="$a "
これは と同等"$a=$a "
です。test
引数を 1 つだけ取得した場合、その引数に少なくとも 1 文字が含まれている場合は /true/success と評価され、それ0
以外の場合は1
/false/error と評価されます。最小限の修正は、 の周りにスペースを配置することである=
ため、3 つの個別の引数を指定します。
if (test "$a" = "$a ") then
しかし、Bashier スタイルで書くことを強くお勧めします。
if [[ "$a" = "$a " ]] then
(元のバージョンの(
andはサブシェルで実行されるだけであり、実際にはまったく目的を果たさないことに注意してください。))
test