我只想比较shell中的两个字符串。下面是代码:
test1="tata"
test2="toto"
if [ $test1=$test2 ]
then
echo "equal"
else
echo "not equal"
fi
必须返回";不相等";但它返回"0";等于";无论我在测试1和测试2中写什么…
我也尝试过以下条件:
if [[ $test1==$test2 ]]
if [[ "$test1"=="$test2" ]]
if [ "$test1"="$test2" ]
但它也一样。。。
我会被造的!
有人能帮我吗?
=
或==
周围的空格不是可选的:
if [[ $test1 == $test2 ]]
if [[ "$test1" == "$test2" ]]
if [ "$test1" = "$test2" ]
如果没有空格,则有一个单个单词恰好包含=
或==
,这意味着两个命令都只是检查该单词是否为空字符串。任何包含至少一个=
的字符串显然都不是空的,因此整个命令都成功了。([ foo ]
相当于[ -n foo ]
。