bash는 와일드카드를 사용하여 사용자 정의 탭을 완성합니다.

bash는 와일드카드를 사용하여 사용자 정의 탭을 완성합니다.

myscript특정 확장명(예: )을 가진 .txt파일에 대해 자동 완성 매개변수를 활성화 하려는 스크립트(이라고 부르겠습니다)가 있습니다 . 간단히 다음과 같이 할 수 있습니다.

complete -f -X '!*.txt' myscript

a그런 다음 , b, a.txt, 파일이 있는 경우 b.txt" ab.txtmyscript"를 입력하고 Tab 키를 두 번 누르면 다음이 생성됩니다.

$ myscript
a.txt  ab.txt  b.txt

내가 원하는 것은 와일드카드가 추가로 필터링되도록 허용하는 것입니다. 예를 들어 "myscript *b*"를 입력하고 탭 키를 두 번 누르면 다음을 확인하고 싶습니다.

$ myscript *b*
ab.txt  b.txt

불행히도 이것은 자동 완성 기능을 제공하지 않습니다. 사용자 정의 자동 완성을 제거하거나 -o bashdefault에 전달하면 complete다음이 표시됩니다.

$ myscript *b*
ab.txt  b  b.txt

Enter를 누르면 b결과를 보거나 스크립트에 전달하고 싶지 않습니다. 이 문제를 해결할 방법이 있나요?

관련 정보