03.在linux终端中修改窗体标题
2019-03-01 本文已影响23人
杨强AT南京
一、命令行方式:
- 使用转义码字符
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()