我必须在两台主机之间使用NFS用户id :A运行ksh93,B运行pdksh88。
我的问题与我在A上创建的自定义提示符有关:它像一个护身符一样工作,并显示颜色:
PS1="$'\E[46;31m'`logname`@$'\E[1;33m'`hostname -s`:$'\E[0m>"但是我切换到了B,这一切都下了地狱(删除了私人信息)。提示符不能像主机A那样显示颜色;相反,颜色代码显示为"in clear“。
$'\E[46;31m'NFS_user_name@$'\E[1;33m'host_name_for_B:$'\E[0m>主机B上的提示符不像主机A那样显示颜色,因此我希望B显示一个基本提示符。为了解决这个问题,我编辑了我的.kshrc文件,在末尾添加了以下代码:
export NODE=`uname -n`
case $NODE in
host_name_for_B)
PS1="[`logname`@`uname -n`]>"
;;
*)
PS1="$'\E[46;31m'`logname`@$'\E[1;33m'`hostname -s`:$'\E[0m>"
;;
esaccase语句不起作用: PS1不会切换到
PS1="[`logname`@`uname -n`]>"对于主机B。
你知道问题出在哪里吗?
发布于 2011-01-20 01:51:25
感谢一位朋友,我的提示符代码可以在主机A和主机B上运行:
PS1="$(printf "\033[46;31m%s@\033[1;33m%s\033[0m>" $(logname) $(hostname -s))"感谢大家抽出时间。
发布于 2013-01-05 08:01:43
下面是另一个同时适用于pdksh和ksh93的方法:
PS1='<$LOGNAME@$HOSTNAME:/${PWD#/}>'https://stackoverflow.com/questions/4729784
复制相似问题