screen 跟 ssh

應該有些人知道 screen 有 shelltitle 這個功能可以跟 shell prompt 配合,讓 screen 的標題是跑的程式的名稱。今天碰到一個問題是我想要讓設成「如果是 ssh 的話,抓空白後的東西,也就是 hostname」,弄了一下沒有成功,後來跑去看別的東西就先暫時放著了。

想過一個可能的惡搞法,讓一個東西吃 ssh-hostname 開頭的指令,然後這個會展開成 ssh hostname 之類的,這樣子就可以配合原本的 shelltitle 弄出我想要的東西,不過也還沒時間仔細研究可不可行。

有人知道怎麼惡搞的話,跟我說一下吧 :D

8 Responses to “screen 跟 ssh”


  1. 1 WanCW

    直接利用 title-string escape-sequence (”ESCkESC\”) 呀。


    我之前的作法是
    寫一個 wrapper script 利用 $0 判斷 hostname,
    根據 hostname 決定 title 後再利用 escape sequence 改變。
    然後替常用的 host 分別建 symbolic link。

  2. 2 WanCW

    修正: title-string escape-sequence 是 “ESCk<title>ESC\”

  3. 3 atomer

    我則是在 .bash_profile 中加

    if [ "x${TERM}" = "xscreen" ]; then
    PS1=”${PS1}\[33\]k\h\[33\]\\”;
    fi

  4. 4 sothat

    #!/bin/tcsh -f
    set last=$argv[$#argv]
    screen -t “> | $last”":” ssh $*
    # 遠端的 prompt 也要 prompt 設好才行

    Btw, 前幾天剛好在玩 vim 可以設 screen title
    if $TERM == “screen”
    ” set title
    set t_ts=^[k
    set t_fs=^[\
    auto BufEnter * :set title | let &titlestring = ‘vim:’ . expand(’%')
    ” auto VimLeave * :set notitle
    endif

  5. 5 sothat

    $last:ar is better.

  6. 6 rafan

    感謝大家, 後來我用 sothat 的方法, 然後 bash 相對應的寫法是

    last=${!#}

    不過因為某些因素,我要寫在 .bashrc 裡面用 function 處理,可是這樣子 command alias 沒有用?

  7. 7 rafan

    呃, 我知道為甚麼 alias 沒用了 XD

  1. 1 在 screen 裡顯示 vi 正在編輯的檔案 [JeffHung.Blog]

Leave a Reply