bash를 입력하고 "tab"을 누르면 자동 완성에 시간이 많이 걸릴 때가 있습니다. 예를 들어 파일 IO는 디렉터리를 읽는 데 5초 이상 걸리므로 입력을 계속하려면 IO가 완료될 때까지 기다려야 합니다. 나는 좌절감을 느끼고 Ctrl-C를 눌러 입력 중인 내용을 다시 실행할 수 있습니다.
Ctrl-C는 모든 것을 다시 입력해야 하기 때문에 불행합니다. 자동 완성 요청을 이행하려는 시도를 중단하도록 bash에 어떻게 알릴 수 있습니까?
$ /long/path/to/some/d # once I've typed this, I press <TAB>. I now will be
# stuck waiting for perhaps 10 seconds. The only thing I
# know to do is Ctrl-C. When I press Ctrl-C, I am forced
# to retype the original command string.
$
답변1
방금 이걸 찾았어요여기.
사용 Ctrl+\
. 완료를 중지하고 현재 명령을 잃지 않고 명령줄로 돌아갑니다.
답변2
탭 완성이 없으면 비슷한 문제가 발생할 수 있습니다. 이는 기술적 차이를 가져오지 않습니다. 즉, 동일한 솔루션이 적용됩니다.
한 가지 가능성은 백그라운드에서 검색을 시작하고 결과를 FIFO에 쓰는 것입니다. 시간 초과( ) 후에 FIFO에서 데이터를 읽을 수 있습니다 read -t 0.3 ...
.
최근에 여기서 FIFO보다 더 간단한 해결책을 본 것 같은데... 지금은 기억이 나지 않습니다. read -t
파이프라인에도 작동하지만 완료로 인해 read
파이프라인의 이전 부분이 종료되지는 않으며 파이프라인은 모든 부분이 완료된 후에만 반환됩니다.
답변3
Ubuntu 16.04에서는 클릭이 q
저에게 효과적이었습니다.