私は主に初期入力後に非対話型になるいくつかのコマンドを実行するためにGNU画面を使用します。
私はスクリーンセッションで出力をナビゲートするのが好きではありません。少し間違っているようです。
スクリーンセッション履歴にアクセスせずにこれを行う方法はありますかscreen -r
? (ここで用語が正しいかどうかはわかりません。シェルプロンプトに入力されたコマンドの履歴ではなく、スクリーンセッションで発生したすべての入力と出力を意味します。)
screen
理想的には、(1)bash / Linuxの組み込み、(2)else自体、(3)else Pythonパッケージの使用、(4)これらのいずれも外部プログラムで利用できない場合にのみこれを実行したいと思います。 。
(1:例cat /run/screen/S-user/12345.pts-1.pc
2:例screen --cat 12345
3:例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 }