답변:
이 줄을 다음에 추가하십시오 .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
PROMPT_COMMAND 가 있으며 , 명령을 보유하면 bash
show prompt 전에 실행 됩니다. 여기에서 우리는 기능으로 설정 prompt_on_top
사용, tput을 화면 상단에 커서를 설정합니다.
bash
trap 을 사용하여 signal을 처리 하여 명령을 실행하기 전에 명령을 실행하는 방법도 있습니다 DEBUG
. 여기서는 기능으로 설정하여 pre_cmd
이전 화면을 지우고 완료 ( COMP_LINE 이 비어 있지 않음) 또는에서 명령을 실행 하면 아무것도하지 않습니다 BASH_PROMPT
.
이 방법에는 제한이 있습니다. 명령 출력이 너무 길어서 화면에 맞지 않으면 출력이 prompt_on_top
동작에 의해 무시됩니다 . 이 경우 전체 출력을 읽으려면 출력을 페이저로 파이프해야합니다.
cat file
이 표시 file
되지만 정확한 명령 실행에 대한 즉각적인 피드백은 얻지 못합니다. 이상적으로는 프롬프트에 확장되지 않은 + 확장 된 버전의 실행 된 명령과 std 출력이 표시됩니다.
cat
파일 이라면 순서가 반대로됩니까?