bash脚本中的字符串比较不起作用



我在bash中写下了以下脚本,但它没有打印所需的输出:

a="abc"
if (test "$a"="$a ") then 
    echo "true "
else
    echo "false "
fi

此脚本应打印false,但不是。我是新手bash脚本,所以有人可以告诉我为什么它不打印false

您只给出test一个参数:"$a"="$a ",它等效于"$a=$a "。当test仅获取一个参数时,如果该参数至少包含一个字符,则评估0/true/成功,而1/false/错误否则。最小的修复程序将是在=周围放置空间,因此您给它提供了三个不同的参数:

if (test "$a" = "$a ") then

,但我真的建议您以狂热的风格写它:

if [[ "$a" = "$a " ]] then

(请注意,原始版本中的()仅导致test在子壳中运行,这确实没有目的。)

相关内容

  • 没有找到相关文章