我想检查所有三个变量是否相同然后打印消息
if [ "$x1" == "$x2" == "$3" ];
then
echo "all are same"
fi
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
[: 争论太多
您当时无法比较三个变量.相反,请将它们以两个为一组进行比较:
if [ "$x1" = "$x2" ] && [ "$x2" = "$x3" ];
then
echo "all are same"
fi
Run Code Online (Sandbox Code Playgroud)
既然你正在使用bash,我建议使用
if [[ "$x1" == "$x2" && "$x2" == "$x3" ]]; then
Run Code Online (Sandbox Code Playgroud)
如果您需要/想要使用 来维护 POSIX 兼容性[ ... ],那么您不应该使用==。
if [ "$x1" = "$x2" ] && [ "$x2" = "$x3" ]; then
Run Code Online (Sandbox Code Playgroud)
bash允许您将非标准==与 一起使用[,但是混合标准和非标准行为没有什么意义。