您的位置:首页 > 运维架构 > Shell

shell提示符包含当前路径的设置方法

2009-05-21 16:23 260 查看
 
    不同的SHELL设置的方法不同,比较方便的是GNU bash(Bourne Again Shell)
和ksh(Korn Shell)以及tcsh(csh的增强版,Linux中的csh就是到tcsh的一个
符号连接)。普通的sh(Bourne Shell)和csh设置比较罗嗦。下面就一个一个的
说各种Shell的设置方法:
 
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=’%~ ’        # %~ 表示当前路径
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  shell bash dos linux
相关文章推荐