美文网首页
03.在linux终端中修改窗体标题

03.在linux终端中修改窗体标题

作者: 杨强AT南京 | 来源:发表于2019-03-01 01:06 被阅读23次

    一、命令行方式:

    • 使用转义码字符
    echo -e "\033]0;我的虚拟终端窗体标题3\007"
    
    终端标题被改变
    • 使用转义字符
    echo -n $'\e'"]0;我的虚拟终端窗体标题"$'\a'
    
    另一种方式的标题改变,都是bash脚本
    • 说明 :
      • '\e'就是ESCAPE键的转义字符,ASCII码33使用八进制表示就是033,转义表示为\033,\e与\033是等价的。bash脚本,

      • 第二种表示方式,不太符合常用的bash习惯,因为没有使用转义的表示,而是由三个输出字符串构成(为了防止每个输出换行,所以,使用-n禁止换行):

        • $'\e' :这种转义表示好崩溃啊。
        • "]0;我的虚拟终端窗体标题"
        • $'\a'
        • 这个语法的帮助在bash的文档可以查阅到(属于引用的范围😓😓),下面是截图: $'string'语法帮助截图
      • 第二种方式的画瓢版本(设置文本颜色):

        echo -n $'\e'"[32;40mHello"$'\e'"[0m"
        
        • 一般方式是这样的:
        echo -e "\033[32;40mHello\033[0m"
        
        使用变态脚本的效果

    二、提示符方式:

    export PS1="\[\033]0;标题\007\]"
    
    使用提示符环境变量修改
    • 说明:
      • [与]是一对符号,用来在PS1提示符环境变量中输出非可视化字符(这个在bash的帮助文档中可见)。
      • 使用man bash查看bash中关于PS1部分的转义字符描述:


        帮助截图

    附录

    • 来自维基的一点修改窗体标题的脚本函数,包括终端信息的判别
    # Set terminal title
    # @param string $1  Tab/window title
    # @param string $2  (optional) Separate window title
    # The latest version of this software can be obtained here:
    # http://fvue.nl/wiki/NameTerminal
    function nameTerminal() {
        [ "${TERM:0:5}" = "xterm" ]   && local ansiNrTab=0
        [ "$TERM"       = "rxvt" ]    && local ansiNrTab=61
        [ "$TERM"       = "konsole" ] && local ansiNrTab=30 ansiNrWindow=0
            # Change tab title
        [ $ansiNrTab ] && echo -n $'\e'"]$ansiNrTab;$1"$'\a'
            # If terminal support separate window title, change window title as well
        [ $ansiNrWindow -a "$2" ] && echo -n $'\e'"]$ansiNrWindow;$2"$'\a'
    } # nameTerminal()
    

    相关文章

      网友评论

          本文标题:03.在linux终端中修改窗体标题

          本文链接:https://www.haomeiwen.com/subject/xitruqtx.html