条件构造语法问题 - 方括号或圆括号

条件构造语法问题 - 方括号或圆括号

我正在 Debian 系统 8.6 上学习基本的 Bash 脚本。我读过在书中找到的一个示例,该示例展示了如何构建条件构造。我让你在下面:

#!/bin/bash
#Filname: CondConst.sh

if [$UID -ne 0]; then
        echo "Non root User."
else
        echo "Root User."
fi

当我运行包含此代码的脚本时,我收到以下错误消息和结果:

[1000: command not found
Root User.

我尝试以多种方式修改代码(使用引号和空格),但我无法理解如何使用方括号语法进行比较。我通过使用不同的语法解决了这个问题,如下所示:

#!/bin/bash
#Filname: CondConst.sh

if (($UID!=0)); then
        echo "Non root User."
else
        echo "Root User."
fi

如果可能的话,谁能解释一下我不能使用方括号的原因?

真的,提前谢谢你。

答案1

你的错误是因为你没有在后面输入空格,[所以它被视为一个命令[1000,所以只需输入空格:

#!/bin/bash
#Filname: CondConst.sh

if [ $UID -ne 0 ]; then
        echo "Non root User."
else
        echo "Root User."
fi

相关内容