使用 .设置终端标题很容易echo -e "\e]0;some title\007"
。适用于几乎所有终端程序。
我想要的是在某些程序启动时设置终端标题 - 并在它完成时恢复旧的。这可能吗?
在 xterm 上,终端控制序列22 和 23 工作正常,如
#!/bin/sh
/bin/echo -ne '\033[22;0t' # Save title on stack
/bin/echo -ne "\033]0;$(date)\007"
sleep 1
/bin/echo -ne '\033[23;0t' # Restore title from stack
不过,Mac OS X Terminal.App 似乎不支持此功能。
有一些终端程序支持它(如 RWS 所述,xterm 有编译时选项),但大多数终端程序只是缺乏这种功能,尤其是 Terminal.app。
是的,这确实是可能的。请参阅xterm
参考手册(例如,像这样)并浏览它。xterm
甚至为此有一个内置堆栈,因此您不必手动存储标题。
我的解决方案是在我的脚本中设置窗口标题,然后在我完成时取消设置窗口标题。取消设置标题恢复为原始值。具体来说,我做了以下事情:
# Set the terminal title
printf "\e]2;%s\a" "running my script"
# Do whatever processing is required.
...
# Restore terminal title
printf "\e]2;\a"