关于分析字符串的Linux Shell if语句是相同的

时间:2016-03-30 15:05:44

标签: linux shell

我是Shell Programming的初学者。当我执行一个关于if语句的程序时,我很困惑 代码如下

echo -n "word 1:"
read word1
echo -n "word 2:"
read word2
if test "$word1"="$word2"
   then echo "Match"
fi

我发现无论我是否输入相同的字符串,它总是打印“匹配”

这就是我想问的问题,谢谢!

1 个答案:

答案 0 :(得分:1)

=周围添加空格:

if test "$word1" = "$word2"

没有它们,您在表达式test上使用"$word1"="$word2"来测试它是否为空。

傻,我知道。

来自man test

  

-n STRING

     

STRING的长度非零

     

STRING

     

相当于-n STRING

完全清楚:首先,$word1$word2被变量的内容替换,比如说helloworld是原创的,所以你得到字符串hello=world。所以,无论你将在这些变量中加入什么,你都会得到一个非空字符串(因为=),因此测试将始终通过。