我必须在两台主机之间使用NFS用户ID:运行Ksh 93和B运行pdksh 88。
我的问题与我在A上创建的自定义提示有关:它就像魅力和显示颜色一样:
PS1="$'\E[46;31m'`logname`@$'\E[1;33m'`hostname -s`:$'\E[0m>"
但是我切换到B,这一切都变成了地狱(删除了私人信息)。提示无法显示主机A等颜色;相反,颜色代码显示为“清晰”。
$'\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>"
;;
esac
case语句不起作用:PS1不切换到
PS1="[`logname`@`uname -n`]>"
主持人B.
知道可能是什么问题吗?
答案 0 :(得分:3)
感谢朋友,我的提示代码适用于主机A和B:
PS1="$(printf "\033[46;31m%s@\033[1;33m%s\033[0m>" $(logname) $(hostname -s))"
感谢所有人抽出时间。
答案 1 :(得分:0)
这是另一个适用于pdksh和ksh93的文件:
PS1='<$LOGNAME@$HOSTNAME:/${PWD#/}>'