首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >.kshrc中的自定义PS1提示不起作用

.kshrc中的自定义PS1提示不起作用
EN

Stack Overflow用户
提问于 2011-01-19 06:28:10
回答 2查看 3.2K关注 0票数 1

我必须在两台主机之间使用NFS用户id :A运行ksh93,B运行pdksh88。

我的问题与我在A上创建的自定义提示符有关:它像一个护身符一样工作,并显示颜色:

代码语言:javascript
复制
PS1="$'\E[46;31m'`logname`@$'\E[1;33m'`hostname -s`:$'\E[0m>"

但是我切换到了B,这一切都下了地狱(删除了私人信息)。提示符不能像主机A那样显示颜色;相反,颜色代码显示为"in clear“。

代码语言:javascript
复制
$'\E[46;31m'NFS_user_name@$'\E[1;33m'host_name_for_B:$'\E[0m>

主机B上的提示符不像主机A那样显示颜色,因此我希望B显示一个基本提示符。为了解决这个问题,我编辑了我的.kshrc文件,在末尾添加了以下代码:

代码语言:javascript
复制
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不会切换到

代码语言:javascript
复制
PS1="[`logname`@`uname -n`]>"

对于主机B。

你知道问题出在哪里吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-01-20 01:51:25

感谢一位朋友,我的提示符代码可以在主机A和主机B上运行:

代码语言:javascript
复制
PS1="$(printf "\033[46;31m%s@\033[1;33m%s\033[0m>" $(logname) $(hostname -s))"

感谢大家抽出时间。

票数 3
EN

Stack Overflow用户

发布于 2013-01-05 08:01:43

下面是另一个同时适用于pdksh和ksh93的方法:

代码语言:javascript
复制
PS1='<$LOGNAME@$HOSTNAME:/${PWD#/}>'
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4729784

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档