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작업이 출력을 덮어쓰게 됩니다. 이 경우 전체 출력을 읽으려면 출력을 호출기로 파이프해야 합니다.

관련 정보