1

我对 bash 很陌生,并且在我假设的格式方面遇到了麻烦。我正在尝试编辑它,/etc/profile因此它将为 root 显示一条登录消息,并为其他任何人显示一条不同的登录消息。但我收到错误 bash: syntax error near unexpected token else。我已经尝试了所有不分号的不同组合,然后在下一行等,但总是得到相同的错误。我已经分别尝试了这些行,它们显示正常(除了$HOSTNAME,不能让它工作)。当像这样运行并使用 root 登录时,它只会跳转到“Welcome $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
4

1 回答 1

0

如所写,以上对我有用-但是,正如所指出的,您应该将测试更改为-eq 0.

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

尝试:

cat -e ~/your_profile

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

od -c ~/your_profile
于 2015-10-01T23:25:05.183 回答