Bash 字符串比较不需要';行不通
出于某种原因,此脚本打印“字符串相等”Bash 字符串比较不需要';行不通,bash,shell,Bash,Shell,出于某种原因,此脚本打印“字符串相等” 我做错了什么?你必须在等号周围留下一个空格: if [ "$A" = "$B" ]; then echo 'strings are equal' fi 编辑:请注意变量周围的引号。没有它们,如果其中一个是空的,你就会陷入麻烦 否则,如果字符串“foo=bar”的长度大于0,则该测试将被解释为测试。 参见人工测试: ... STRING equivalent to -n STRING -n STRING the
我做错了什么?你必须在等号周围留下一个空格:
if [ "$A" = "$B" ];
then
echo 'strings are equal'
fi
编辑:请注意变量周围的引号。没有它们,如果其中一个是空的,你就会陷入麻烦
否则,如果字符串“foo=bar”的长度大于0,则该测试将被解释为测试。参见
人工测试
:
...
STRING equivalent to -n STRING
-n STRING
the length of STRING is nonzero
...
在equals字符周围应该有空格:
if [ $A = $B ];
^ ^
There
此外,您应该引用变量,如下所示:
if [ "$A" = "$B" ];
还值得指出的是,您做了正确的事情,并在变量周围添加了引号。如果您正在比较不带引号的字符串,而其中一个字符串为空,则由于测试格式错误,脚本将退出。@Kyle:是的,您是对的。我应该提到这个事实。
if [ "$A" = "$B" ];