这似乎不可能,但是您可以找到默认的终端标题,因此您需要做的就是配置不同的默认标题来区分选项卡或配置文件。
控制序列ESC [ 2 1 t要求终端将其标题插入终端输入流。(有关 xterm 和类似程序的转义序列的更多信息,请参阅Xterm 控制序列)。具体来说,终端(如果它支持此功能;gnome-terminal 支持)会响应ESC ] l title ESC \。
下面是一个 bash 函数,它设置变量,该变量的名称作为第一个参数传递给 xterm 标题(如果有)。如果终端不支持该功能,则一秒后超时,并返回非零错误代码。
read_xterm_title () {
# Clear IFS so that read doesn't do any word splitting.
local IFS= read_xterm_title_header=
# $1 is expected to be a parameter name. Do a crude format check.
if [[ $1 = '' || $1 = *[!0-9_A-Za-z]* ]]; then return 120; fi
eval $1=
# Expect "ESC ] l title ESC \\"
read -p $'\e[21t' -s -t 1 -r -n 3 read_xterm_title_header &&
[[ $read_xterm_title_header = $'\e]l' ]] &&
read -p '' -s -t 1 -r -d $'\e' $1 &&
read -s -t 1 -r -n 1
}
read_xterm_title title
case $title in ...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1268 次 |
| 最近记录: |