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'
またはそのようなもの。