Bash

如何將“螢幕”內的輸出輸出到腳本?

  • January 24, 2017

我有一個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)要求螢幕開始將您所在的任何視窗轉儲到日誌文件中。

引用自:https://unix.stackexchange.com/questions/12601