「画面」内の出力をスクリプトにどのようにインポートしますか?

「画面」内の出力をスクリプトにどのようにインポートしますか?

screenいくつかのコードを実行しscreen、結果をスクリプトに出力する必要がある実行中のインスタンスがあります。

最初の部分は簡単ですscreen -S session_name -X eval 'stuff "$cmd"\015'
(修正しましたスクリプトで見つかった1行)

2番目の部分である出力はよりトリッキーです。サイズに関係なく、全体の出力をどのように取得できますか?

答え1

オプションscreenで始めることができます。-Lこれにより、画面は現在の作業ディレクトリにファイルを生成しますscreenlog.n(n部分は0から始まる数字です)。

あなたの場合は次のとおりです。screen -S session_name -L -X eval 'stuff "$cmd"\015'

後でクリーンアップすることを覚えている限り、これはあなたに役立ちます。

ログの最後の行にはeasy getを使用するtail -1 screenlog.0か、必要に応じてログ全体を解析できます。

答え2

将来に役立つ可能性があるもう1つの微妙な違い:画面セッションにいる場合は、対話形式でログファイルの作成を要求できます。ctrl- a H(Control-Aの後に大文字H)を押すと、現在あるウィンドウをログファイルにダンプし始めます。

関連情報