iihero@ChinaUnix, ehero.[iihero] 数据库技术的痴迷爱好者. 您可以通过iihero AT qq.com联系到我 以下是我的三本图书: Sybase ASE in Action, Oracle Spatial及OCI高级编程, Java2网络协议内幕
分类: LINUX
2013-07-29 09:42:17
ksh:
由于ksh把提示符变量PS1作为一个特殊的变量看待,cd的时候ksh会自动更
新PS1的值所以只要简单的把当前路径对应的环境变量$PWD加到PS1里就行了:
PS1='$PWD $ '
sh:
由于Bourne Shell只把PS1作为一个普通的变量,而且不支持别名,因此无
法完美地实现DOS中相同的功能,解决的方法是重新定义一个命令(比如xcd)
将其实现为一个函数:
xcd() { cd $* ; PS1="`pwd` $ "; }
然后每次用xcd切换目录。
csh:
csh虽然不对提示符变量$prompt作特殊处理,但它支持别名,可以修改一下
cd的语义,使其自动修改提示符:
alias setprompt 'set prompt="${cwd}% "'
setprompt# to set the initial prompt
alias cd 'chdir \!* && setprompt'
bash:
bash提供了一些特殊的变量来支持提示符的设置,\w表示当前路径,并把
等同于$HOME的部分替换成~,以缩短提示符的长度。
PS1='\w $ '
Linux中是把hostname也加上了:
PS1='\h:\w $ ' # \h 表示hostname
为了更象DOS,可以把不同的命令分得更清楚,我通常加上一个换行符:
PS1='
\h:\w $ '
tcsh:
tcsh的做法类似于bash,只不过变量的名字不同:
set prompt='%~ ' # %~ 表示当前路径