
Dockerfile
나는 탭(일반적으로 어디에서나 사용함)을 사용하여 서식을 지정하는 글을 쓰고 있습니다 .
하지만 두 번째 줄이 두 개의 탭 문자로 시작하는 여러 줄 명령을 복사했습니다. 즉:
apt-get -y update && \
apt-get -y install collectd \ # begin two tabs
첫 번째 줄은 올바르게 실행되지만 두 번째 줄은 "자동 완성"을 시도하고 가능한 모든 명령을 표시한 후 다음을 수행합니다.
> stall collectd
# [ apt-get updating ]
bash: stall: command not found
나는 "자동 완성" 동작을 이해하지만, stall collectd
? Bash가 그 부분을 먹는 이유는 무엇입니까 apt-get -y in
?
답변1
카오스의 대답이 동작을 비활성화하는 방법을 명확하게 설명하지만 이 질문은 명령의 첫 번째 부분에 무슨 일이 일어났는지에 대한 호기심에서 비롯된 것으로 해석했습니다 apt-get
.
두 개의 탭을 입력하면 Bash는 원하는지 묻습니다.
5177개의 가능성을 모두 표시하시겠습니까? (y 또는 n)?
가능성의 수는 사용자의 환경에 따라 다릅니다.
문자열에 있는 문자 중 하나로 응답한다면 apt-get -
Bash는 예 또는 아니오만을 원하기 때문에 해당 문자를 무시합니다. 을 얻으면 y
모든 가능성이 표시됩니다.
More?
최신 버전의 Bash에서 이 목록은 하단에 프롬프트 가 있는 호출기에 표시됩니다 . 호출기는 공백 문자를 사용하여 페이지를 아래로 스크롤하고 다음 i
문자를 무시하지만 다음 문자는 n
호출기를 종료하기 위해 "아니요"로 해석됩니다.
마지막으로 나머지 문자는 stall collectd
셸에서 명령으로 해석됩니다.
답변2
bash
키를 누를 때 의 완료 동작을 비활성화할 수 있습니다 tab.
bind 'set disable-completion on'
이제 tab키는 편집기 내부처럼 줄을 들여쓰기만 합니다. 이것은 단지 일시적인 것입니다. 다음 쉘 세션에서는 설정되지 않습니다. 영구적으로 만들고 싶다면 ~/.inputrc
.
키 를 다시 활성화하려면 tab다음을 수행하십시오.
bind 'set disable-completion off'