在Shell中比较两个字符串不起作用



我只想比较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 ]

相关内容

  • 没有找到相关文章

最新更新