linux脚本 prompt,求教关于SHELL提示符设置的问题

关于SHELL提示符设置的问题(sh,ksh),我想在提示符前加上当前的工作路径。按几种方法设置了PS1变量以后均只能显示初始路径。

|

just use PS1(PS2)

这得视你的 shell 而定。有些 shell 很容易,有些 shell 很难,有些根

本办不到。

C Shell (csh):

将以下的东西加入你的 .cshrc 里。

alias setprompt 'set prompt="${cwd}% "'

setprompt           # to set the initial prompt

alias cd 'chdir !* && setprompt'

假如你有用 pushd 与 popd, 把底下的东西也加进去。

alias pushd 'pushd !* && setprompt'

alias popd  'popd  !* && setprompt'

若你的 C shell 没有 $cwd 这个变数,那就得用 `pwd` 代替之。

若你想要的只是 prompt 里有目前所在目录的最后一个成分

("mail%" 而?nbsp;"/usr/spool/mail%") 则用

alias setprompt 'set prompt="$cwd:t% "'

有些旧版的 csh 将 && 和 || 的意义弄反了。你可以试试看:

false && echo bug

若结果是印出 "bug",那就把 && 和 || 对调,或找一个没有这种

bug 的 csh 来用。

Bourn Shell (sh):

如果你有较新版的 Bourn Shell(SVR2 或更新的版本),那么你就可

以用一个 shell function 来造你自己的命令,譬如 "xcd":

xcd() { cd $* ; PS1="`pwd` $ ";}

如果你的 Bourn Shell 是比较旧的版本,也是可以做到,但是方法比

较复杂。这里提供一个方法。把以下的内容加入你的 .profile:

LOGIN_SHELL=$$ export LOGIN_SHELL

CMDFILE=/tmp/cd.$$ export CMDFILE

# 16 is SIGURG, pick a signal that's not likely to be

used

PROMPTSIG=16 export PROMPTSIG

trap '. $CMDFILE' $PROMPTSIG

然后把以下的部份写成一个可执行的 script(不需要缩排),名字就

叫做 "xcd",放在你的 PATH 中

: xcd directory - change directory and set prompt

: by signalling the login shell to read a command file

cat >${CMDFILE?"not set"}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值