2016-07-29 39 views
0

我想寫一個bash腳本重新連接到現有的linux屏幕,執行一些命令,然後從該屏幕分離。我知道在分離模式下創建一個新的Linux屏幕並執行一些命令。但我還沒有找到一種方法重新連接到現有的Linux屏幕。如何編寫bash腳本以重新連接到現有的linux屏幕?

+1

不是'screen -r' help? – Roman

+0

@Roman不,我也試過,它不起作用 – oblivion

+0

如果這是一個腳本,你不能只附加到屏幕上,然後繼續你的腳本的其餘部分。 attach命令實際上不會退出*直到分離。 – chepner

回答

1

試試這個;

[email protected]:/screen -ls 

There are screens on: 
     29229558.pts-5.host (Detached) 
     46661728.pts-22.host (Detached) 

[email protected]:/screen -r 46661728.pts-22.host 

如果您看到(附件)如下;

[email protected]:/screen -ls 
There are screens on: 
     29229558.pts-5.host (Detached) 
     46661728.pts-22.host (Atached) 

screen -D -r 46661728.pts-22.host 
2

您可以使用-S選項給屏幕會話命名。 例子:screen -dS NAME <command>

然後你就可以重新連接到使用screen -r NAME

0

要重新來,你必須遵循這個屏幕會話步驟:

之前去連接從屏幕,執行:

STDOUTTERM=$(who -m|awk '{print $2}') 

然後,您可以將stdout附加到任何你想要的。當你完成,重新連接到標準輸出,執行此:

exec > /dev/$STDOUTTERM 
0

您可以發送命令來使用screen -X exec運行屏幕。請參閱手冊頁以瞭解重定向選項。

screen -X exec ls 

另外,您可以使用screen -X paste,因爲如果用戶鍵入它發送文本到正在運行的屏幕的標準輸入緩衝區。這可以是在交互式shell中運行命令的一種方式。

screen -X register a "ls\n" 
screen -X paste a