由于某种原因,此脚本打印“字符串相等”
#!/bin/bash
A='foo'
B='bar'
if [ $A=$B ];
then
echo 'strings are equal'
fi
我做错了什么?
答案 0 :(得分:16)
你必须在等号周围留一个空格:
if [ "$A" = "$B" ];
then
echo 'strings are equal'
fi
编辑:请注意变量周围的引号。没有它们,如果其中一个是空的,你将遇到麻烦。
否则,如果字符串“foo = bar”的长度> 0 ,则测试将被解释为 test。
见man test
:
...
STRING equivalent to -n STRING
-n STRING
the length of STRING is nonzero
...
答案 1 :(得分:7)
你应该在等号字符周围有空格:
if [ $A = $B ];
^ ^
There
另外,你应该引用变量,如下所示:
if [ "$A" = "$B" ];