Bash
如何將“螢幕”內的輸出輸出到腳本?
我有一個
screen
正在執行的實例,我需要在其中執行一些程式碼screen
,並將結果輸出到我的腳本中。第一部分很簡單,我只是
screen -S session_name -X eval 'stuff "$cmd"\015'
。(我修改了我在腳本中找到的一行)
第二部分,輸出輸出,比較棘手。無論大小如何,我怎樣才能獲得整個輸出?
您可以從
screen
選項-L
開始。這將導致 screenscreenlog.n
在目前工作目錄中創建一個文件(n 部分是數字,從零開始)。在您的情況下,這看起來像:
screen -S session_name -L -X eval 'stuff "$cmd"\015'
只要您記得事後清理,這應該與您所追求的相匹配。
對於日誌的最後一行,可以使用 輕鬆獲取
tail -1 screenlog.0
,或者可以根據需要解析整個日誌。
將來可能會有所幫助的另一個細微差別:如果您處於螢幕會話中,則可以互動地請求創建日誌文件。按
ctrl
-a
H
(Control-A 後跟大寫 H)要求螢幕開始將您所在的任何視窗轉儲到日誌文件中。