我对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
答案 0 :(得分:0)
如上所述,上述内容适用于我 - 但正如所指出的,您应该将测试更改为-eq 0
。
对于 语法错误附近意外令牌 问题 - 我猜您的文件包含嵌入式控制码',即最有可能是回车\r
。
尝试:
cat -e ~/your_profile
看到任何不可打印的字符?如果是这样,请删除它们(cat
选项可能会有所不同 - 请查看联机帮助页)或
od -c ~/your_profile