画面を使用した端末の分割

画面を使用した端末の分割

bashスクリプトでユーザーにファイルを表示したいのですが、端末全体を使用したくlessありませんless。ユーザーがを使用してファイルを閲覧している間は、端末にいくつかの情報が表示されるようにしてくださいless

私はそれを見て、terminal split linuxすべての結果はこのscreenコマンドを参照します。

数時間の試行錯誤の末にほぼ効果のある解決策を思い出したと信じています。以下を含むファイルを作成しましたscreen.rc

split
screen 1 less /etc/passwd
focus down
resize 10
screen 2
exec !.. echo Informations area
focus up

これで、私のbashスクリプトで以下を実行できます。

screen -c screen.rc

less /etc/passwd上部領域と下部領域に出力を持つ分割端末を作成し、上部領域Information areaは期待される動作であるユーザ入力を受け取ります。ほぼ完璧です。ユーザーがq[終了] をクリックした場合を除き、less下部screen領域にまだ実行中のシェルがあるため終了しません。これで、ユーザーは下部領域(CTRL + a TAB)に集中し、Ctrl + dを押して実行を終了する必要がありますbash

したがって、カスタムファイルビューアを終了する手順lessは次のとおりですq CTRL+a TAB CTRL+d。テキストファイルビューアを終了するには、数回のキーストローク...

screenトップレベルのRegionコマンドが終了したらすぐに終了するにはless

答え1

コマンドを送信するとquit画面が終了します。したがって、lessそのコマンドを次のように置き換えます。

screen 1 sh -c 'less /etc/passwd ; screen -S "${STY}" -X quit'

またはそのようなもの。

関連情報