bash:意外令牌附近的语法错误`else'格式问题?

时间:2013-11-07 04:52:27

标签: bash .bash-profile

我对bash很新,并且我在假设格式化方面遇到了麻烦。我正在尝试编辑/etc/profile,因此它将显示root的登录消息和其他任何人的登录消息。但是我在意外的令牌else附近遇到错误bash:语法错误。我已经尝试了所有不使用分号的组合,然后在下一行等,但总是得到相同的错误。我已经单独尝试了这些行,它们显示正常($HOSTNAME除外,无法使其工作)。当像这样运行并使用root登录时,它将跳转到“欢迎$USER ...”。

任何建议都将不胜感激!

if [ "$UID" -ne 0 ]; then
  echo -e "\033[40;37;7m Danger! Root is doing stuff in `pwd`\033[0m"
else
  echo "Welcome $USER! You are working on `$HOSTNAME` in `pwd`."
fi

1 个答案:

答案 0 :(得分:0)

如上所述,上述内容适用于我 - 但正如所指出的,您应该将测试更改为-eq 0

对于 语法错误附近意外令牌 问题 - 我猜您的文件包含嵌入式控制码',即最有可能是回车\r

尝试:

cat -e ~/your_profile

看到任何不可打印的字符?如果是这样,请删除它们(cat选项可能会有所不同 - 请查看联机帮助页)或

od -c ~/your_profile