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