화면 상단 라인에 bash 입력 유지 유지하여 이전 명령의

bash명령 프롬프트 입력을 화면 상단에 유지하여 이전 명령의 출력이 위쪽이 아닌 아래쪽으로 푸시되도록 하고 싶습니다 .

어떻게하면 되나요?



답변

이 줄을 다음에 추가하십시오 .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

bashPROMPT_COMMAND있으며 , 명령을 보유하면 bashshow prompt 전에 실행 됩니다. 여기에서 우리는 기능으로 설정 prompt_on_top사용, tput을 화면 상단에 커서를 설정합니다.

bashtrap 을 사용하여 signal을 처리 하여 명령을 실행하기 전에 명령을 실행하는 방법도 있습니다 DEBUG. 여기서는 기능으로 설정하여 pre_cmd이전 화면을 지우고 완료 ( COMP_LINE 이 비어 있지 않음) 또는에서 명령을 실행 하면 아무것도하지 않습니다 BASH_PROMPT.


이 방법에는 제한이 있습니다. 명령 출력이 너무 길어서 화면에 맞지 않으면 출력이 prompt_on_top동작에 의해 무시됩니다 . 이 경우 전체 출력을 읽으려면 출력을 페이저로 파이프해야합니다.


답변