bash入力を画面の一番上の行に保持

bash入力を画面の一番上の行に保持

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を上書きします。この場合、出力全体を読み取るには、出力をポケットベルにパイプする必要があります。

おすすめ記事