2009-05-22 65 views

回答

7

我想這樣的作品:

if [-n "$STY"]; then 
    screen -X title "foo" 
    screen -X monitor on 
fi 
+0

完美!謝謝! – Dan 2009-05-22 20:29:17

0

屏幕透明運行,因此檢測屏幕會話很困難。如果你嘗試發送按鍵,這將起作用,並且如果你不在會話中,將會給你的終端添加一些垃圾。

+0

嗯,如果我需要的話,我可以把一些東西放在我的screenrc文件中,就像變量聲明一樣,使我的bash腳本變得很明顯(這個腳本只適用於我)。 雖然我仍然掛在其他部分。我有這些程序需要花費幾個小時才能運行,如果一旦啓動程序,標題被重命名爲當前正在運行的進程(我的腳本使用一個參數運行)並且監視將打開,所以我只希望到另一個選項卡,並在我的程序完成時得到通知。 – Dan 2009-05-22 19:40:02

1

您是否在尋找信息或與屏幕會話本身進行交互?在消息行(http://www.slac.stanford.edu/comp/unix/package/epics/extensions/iocConsole/screen.1.html#lbAI

消息行 屏幕顯示 參考消息等 診斷: 您可以將消息發送回本。雖然 此行分配爲出現在屏幕的底部 ,但它可以是 定義爲在編譯期間出現在 屏幕的頂部。如果您 終端在 它的termcap定義的狀態行,屏幕將使用此 顯示它的消息,否則 線當前屏幕的將是 暫時覆蓋和輸出 將被暫時中斷。 消息行延遲幾秒後自動刪除 ,但它也可以在早期刪除(在沒有狀態行的終端 上),開始爲 類型。

消息行設施可以通過運行在 當前窗口中的應用程序使用 隱私消息控制序列。對於 例如,從外殼內,儘量 類似:

echo '<esc>^Hello world from window '$WINDOW'<esc>\\' 

其中「」是一種逃避,「^」是一個 字面向上箭頭,和「\」變成 一個反斜槓。

2

屏幕聲明$STY環境變量,您可以嘗試使用它。

9

從屏幕手冊頁:

-X Send the specified command to a running screen session. You can 
     use the -d or -r option to tell screen to look only for attached 
     or detached screen sessions. Note that this command doesn't work 
     if the session is password protected. 

基本上,運行

screen -X title mynewtitle 
screen -X monitor on 

如果終端沒有屏幕內運行,它默默地錯誤:

notinscreen:~$ screen -X title mynewtitle 
notinscreen:~$ 

即使在分離時,您也可以將該命令發送到特定會話。給定一個屏幕會命名爲「主」:

$ screen -S main 
[detach from screen session] 
$ screen -ls 
There is a screen on: 
     2073.main  (Detached) 
1 Socket in /tmp/uscreens/S-dbr. 

..你可以發送的最後一個活動窗口的標題blah

$ screen -x main -X title blah 

..或一個特定的窗口(在此命名爲oldwindow示例):

$ screen -x main -p oldwindow -X title blah 

代替使用-x main可以使用進程ID(從screen -ls),也代替使用窗口的名字(-p oldwindow)你可以使用一個窗口號:

$ screen -x 2073 -p 0 -X title h 

如果只有一個會話,你不必指定會話PID或名稱。