Bash
GNOME 3.14+ 推出新的 gnome-terminal 並設置標題
令許多人失望的是,選項卡/視窗標題無法再設置
--title
我使用 bash。我有一些用於連接遠端伺服器的別名。
alias c:prod='gnome-terminal --hide-menubar --profile=Production \ --title="Production Server" -e "ssh <url>" &'
我找到了一個 GNOME 3.14+ 的解決方法來設置標題,一旦放入,它就可以在命令行中執行良好
.bashrc
function set-title() { if [[ -z "$ORIG" ]]; then ORIG=$PS1 fi TITLE="\[\e]2;$@\a\]" PS1=${ORIG}${TITLE} }
但是,這似乎只有在遠端伺服器中放置和呼叫時才有效,
.bashrc
即我只能在登錄後更改標題。如果我在連接之前嘗試更改新視窗的標題,它沒有任何效果:
alias c:prod='gnome-terminal --hide-menubar --profile=Production \ -e "bash -c \"source ~/.bashrc;set-title Production;ssh <url>\"" &'
當終端在我的盒子上執行時,在遙控器上設置視窗標題感覺不對,而且我不能讓它在我的使用者碰巧沒有主目錄的伺服器上工作
.bashrc
。有沒有一棵樹我看不到的森林?
- 將函式附加
set-title
到~/.bashrc
:function set-title() { if [[ -z "$ORIG" ]]; then ORIG=$PS1 fi TITLE="\[\e]2;$@\a\]" PS1=${ORIG}${TITLE} }
- 安裝
expect
,如果你沒有它:sudo apt-get install expect
- 使用內容創建
ProductionServer.sh
:#!/usr/bin/env expect spawn bash expect -re $ {send -- "set-title \"Production Server\"\rclear\rssh user@1.2.3.4\rclear\r"} interact exit
gnome-terminal
帶參數執行:gnome-terminal --hide-menubar -e ~/ProductionServer.sh
也許這個過程可以優化,但問題已經解決了。