我想检查所有三个变量是否相同然后打印msg
if [ "$x1" == "$x2" == "$3" ];
then
echo "all are same"
fi
我收到此错误:
[:参数太多
答案 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)