타이밍 문제입니다 : bash hello
는 백그라운드에서 명령을 시작한 다음 새 명령을 입력하라는 프롬프트를 표시 한 다음 background 명령은 일부 출력을 인쇄합니다. 다음 명령 줄 (빈 명령 줄을 입력하면을 누르는 경우 Enter)을 입력하면 bash는 백그라운드 작업이 완료되었다는 알림을 표시하고 다음 프롬프트를 표시합니다.
백그라운드에서 스크립트를 시작한 sleep 3
직후에 시작하여 입력 을 시작하는 스크립트를 시험해보고 따라갈 수있는 속도로 무슨 일이 일어나고 있는지 확인할 수 있습니다.
notify
옵션을 로 설정하여 백그라운드 작업이 종료 될 때 bash가 즉시 알리도록 할 수 있습니다 set -b
. 그럼 당신은 볼 수 있습니다 :
$ set -b
$ hello &
[1] 12345
$ hello world!
[1]+ Done
이 경우 Bash는 프롬프트를 다시 그리지 않습니다. 백그라운드 작업이 인쇄되기 전에 표시되는 프롬프트 행에서 여전히 명령 행을 편집하고 hello world!
있습니다. Esc 1 Ctrl+ 를 눌러 현재 줄을 다시 그릴 수 있습니다 L. 명령 redraw-current-line
을보다 편리한 키 에 바인딩 할 수 있습니다 . 예를 들어, 현재 행 을 Ctrl+ L다시 그리거나 Ctrl+ Alt+ L화면을 지우려면 다음 행을 추가하십시오 ~/.inputrc
.
"\C-l": redraw-current-line
"\e\C-l": clear-screen
bash가 프롬프트 라인을 자동으로 다시 그리는 방법을 모르겠습니다. Zsh는 기본적으로이 기능을 수행합니다.