用于检查三个变量的unix shell脚本是相同的

时间:2014-02-26 10:56:29

标签: bash shell unix

我想检查所有三个变量是否相同然后打印msg

if [ "$x1" == "$x2" == "$3" ];
 then 
 echo "all are same"
fi

我收到此错误:

  

[:参数太多

3 个答案:

答案 0 :(得分:7)

您无法比较三个变量。相反,请将它们以两个为一组进行比较:

if [ "$x1" = "$x2" ] && [ "$x2" = "$x3" ];
then
   echo "all are same"
fi

答案 1 :(得分:3)

由于您使用的是bash,我建议您使用

if [[ "$x1" == "$x2"  && "$x2" == "$x3" ]]; then

如果您需要/想要使用[ ... ]维护POSIX兼容性,则不应使用==

if [ "$x1" = "$x2" ] && [ "$x2" = "$x3" ]; then

bash允许您将非标准==[一起使用,但混合标准和非标准行为几乎没有意义。

答案 2 :(得分:1)

使用:

if [ "$x1" = "$x2" -a "$x2" = "$x3" ]

测试here