특정 셸 명령이나 별칭에 대한 완성을 완전히 비활성화하려면 어떻게 해야 합니까?

특정 셸 명령이나 별칭에 대한 완성을 완전히 비활성화하려면 어떻게 해야 합니까?

매개 변수를 사용하지 않는 다음 Bash 별칭이 있습니다.

alias b='cd ..'

입력 b<space>한 후 누르면 <tab>현재 디렉터리의 모든 경로에 대한 완료 결과가 표시됩니다. <tab>어떤 종류의 자동 완성도 실행하지 않도록 하려면 어떻게 해야 합니까 ? 나는 그것을 시도했지만 complete -r b도움이되지 않습니다.

답변1

-bash-4.2$ alias b='cd ..'
-bash-4.2$ function nope() { :; }
-bash-4.2$ complete b -F nope
-bash-4.2$ b 

따라서 nope기능을 완료하면 완료가 비활성화되는 것처럼 보입니다. 이것을 개선할 수 있을까요?

-bash-4.2$ alias b='cd ..'
-bash-4.2$ b
Display all 116 possibilities? (y or n)
-bash-4.2$ complete b -C :
-bash-4.2$ b 

이는 다음과 같습니다. "nothing" :명령을 사용하면 아무 작업도 수행하지 않는 기능을 추가할 필요가 없습니다.

관련 정보