当我运行交互式bash
会话时,我有时会尝试使用sh
.
sh
我直接从本次会议中致电bash
。
我的问题是,我怎样才能改变PS1
这个子 shell 的提示符?
我希望提示是这样的sh$
,通知我我正在使用sh
而不是bash
。
到目前为止我尝试过的是:
.bashrc
我制作了一个类似于命名的配置文件.shrc
- 我只在里面放了一行:
export PS1='$(echo ${0})\$ '
然后我修改
~/.profile
说如下:# if running bash if [ -n "$BASH_VERSION" ]; then # include .bashrc if it exists if [ -f "$HOME/.bashrc" ]; then . "$HOME/.bashrc" fi # if running another shell else if [ -f "$HOME/.shrc" ]; then . "$HOME/.shrc" fi fi
我重新启动了终端,但更改并未应用。
- 如果我手动运行
. ~/.shrc
,sh
更改做得到应用。
我究竟做错了什么?
答案1
默认情况下它不会获取该文件。您可以指示它这样做:
ENV=~/.shrc sh
或者您可以添加:
alias sh="PS1='\$0\$ ' sh"
到您常用的 shell 的环境文件。它可以简化事情。
甚至:
alias sh='ENV=~/.shrc sh'
不过,如果您只想为其声明一个变量,$PS1
那么像第一个示例一样在命令行上显式设置alias
可能是更好的方法。