使用echo -e "\e]0;some title\007"
可輕鬆設置終端標題。幾乎所有的終端程序都可以使用。我可以得到終端標題嗎? (或以其他方式恢復舊的)
我想要的是在某些程序啓動時設置終端標題 - 並在完成時恢復舊標題。這可能嗎?
使用echo -e "\e]0;some title\007"
可輕鬆設置終端標題。幾乎所有的終端程序都可以使用。我可以得到終端標題嗎? (或以其他方式恢復舊的)
我想要的是在某些程序啓動時設置終端標題 - 並在完成時恢復舊標題。這可能嗎?
有一些終端程序支持它(xterm有編譯時間選項,正如RWS所提到的那樣),但是大多數終端程序缺乏這種功能,特別是Terminal.app。
是的,這是可能的。請參閱xterm
參考手冊(例如this),並漫遊其中。 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"
上的xterm,在terminal control sequences 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雖然。
這還是很酷的,謝謝。 – taw 2013-11-19 02:04:40
它已經測試了Konsole 1.6.4和Gnome終端2.16.10(都非常非常老,我不得不承認,但很高興知道你是否想要兼容)。結果:它不起作用。 – hagello 2015-02-04 08:33:33
也不適用於roxterm(可能是其他基於VTE的終端?) – ideasman42 2016-09-02 05:01:18
對於Terminal.app,AppleScript來救援:'title = \'osascript -e'告訴應用程序「終端」獲取前窗口的名稱\\'',然後'echo $ title'按預期工作。雖然不太需要AppleScript。 – Arjan 2013-06-17 18:33:14
(如果你只有一個終端窗口,或者它確實是最前面的窗口,使用上面的AppleScript只能很好地工作......) – Arjan 2013-06-17 20:49:50