添付せずにGNUスクリーンセッションを読む

添付せずにGNUスクリーンセッションを読む

私は主に初期入力後に非対話型になるいくつかのコマンドを実行するためにGNU画面を使用します。

私はスクリーンセッションで出力をナビゲートするのが好きではありません。少し間違っているようです。

スクリーンセッション履歴にアクセスせずにこれを行う方法はありますかscreen -r (ここで用語が正しいかどうかはわかりません。シェルプロンプトに入力されたコマンドの履歴ではなく、スクリーンセッションで発生したすべての入力と出力を意味します。)

screen理想的には、(1)bash / Linuxの組み込み、(2)else自体、(3)else Pythonパッケージの使用、(4)これらのいずれも外部プログラムで利用できない場合にのみこれを実行したいと思います。 。

(1:例cat /run/screen/S-user/12345.pts-1.pc2:例screen --cat 123453:例pip install screen; python -c 'import screen;print(screen.read_socket("12345"))'4:はいsudo apt install screenreader; screenreader 12345

ベストアンサー1

expectセッショントランザクションは、いくつかの初期対話型入力の後に記録され、無人状態のままになることがあります。これにより、コマンドを実行して対話し、プログラムが終了するまで入力して~.コマンドに渡すことができます。expectこれまでout.1535209800確認したり、何でもできます。

#!/usr/bin/env expect
log_file out.[clock seconds]
spawn -noecho sh  ;# here be the command to run
interact {
  ~. { return }   ;# type this when done interacting
  ~~ { send "~" } ;# or this to get a literal ~ in the shell
}
if {[catch {
  expect {
    eof { exit }
    match_max { exp_continue }
    timeout { exp_continue }
  }
} oops ]} { puts stderr $oops; exit 1 }

おすすめ記事