bash
前のコマンドの出力が上からではなく下にプッシュされるように、画面の上部にコマンドプロンプト入力を維持したいと思います。
この目標をどのように達成できますか?
ベストアンサー1
次の行を次の項目に追加します.bashrc
。
prompt_on_top() {
tput cup 0 0
tput el
tput el1
}
pre_cmd() {
if [ "$BASH_COMMAND" = "$PROMPT_COMMAND" ] || [ -n "$COMP_LINE" ]; then
return
fi
printf "\33[2J"
}
PROMPT_COMMAND="prompt_on_top"
trap 'pre_cmd' DEBUG
bash
持つプロンプトコマンドbash
を選択すると、プロンプトが表示される前に保存されたコマンドが実行されます。ここでは、これを次のprompt_on_top
関数に設定します。出力画面上部にカーソルを設定します。
bash
コマンドを実行する前にコマンドを実行する方法もあります。罠信号を処理しますDEBUG
。ここでは、functionに設定してpre_cmd
前の画面を消去し、完了すると何もしません(COMP_LINE空ではない)またはコマンドを実行してくださいBASH_PROMPT
。
このアプローチには制限があります。コマンド出力が長すぎて画面に収まらない場合、ジョブは出力prompt_on_top
を上書きします。この場合、出力全体を読み取るには、出力をポケットベルにパイプする必要があります。