我正在 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