我正在尝试设置一个条件,如果我通过“su”获得 root 权限,我的 csh 提示符将被自定义为更改用户名颜色和提示符字符。最明智的做法是什么?
仅凭目测我现有的 .cshrc,我尝试添加它,但得到了“非法变量名”。有没有更好的方法来检查用户 ID 并针对它设置 if/then,或者另一种更合理的方法来完全做到这一点?
if ( $uid == 0 ) then
set prompt = "%{\033[31m%}${USER}%{\033[0m%}@%{\033[32m%}%m%{\033[0m%} %{\033[35m%}[%~]%{\033[0m%} # "
set promptchars = "%#"
else
set prompt = "%{\033[36m%}${USER}%{\033[0m%}@%{\033[32m%}%m%{\033[0m%} %{\033[35m%}[%~]%{\033[0m%} # "
set promptchars = "%$"
endif
答案1
您需要在 Root 的 .cshrc 中设置 root 的提示符
/root/.cshrc
答案2
首先,你做需要按照其他响应者的建议在 ~root/.cshrc 中设置所需的 root 提示符,这样您就可以完全摆脱构造。除此之外,您的“非法变量名”是由您的- “$”被用于取消引用不存在的变量if
造成的。你set promptchars = "%$"
能通过使用 来避免这种情况set promptchars = '%$'
,但此时,为什么?这表示您希望使用“$”而不是“#”作为根提示符。只需完全删除该语句即可。
尽管不是绝对必要的,您也可以${USER}
在提示中用替换%n
。