2
파일. 'ls'명령을 사용하지 않고 더 좋은 방법이있을 수 있습니다. 예 : -o 파일 이름 또는 -f를 사용합니까?bash는 완료 나는 다음과 같은 bash는 완성 기능을 만들었습니다
파일. 'ls'명령을 사용하지 않고 더 좋은 방법이있을 수 있습니다. 예 : -o 파일 이름 또는 -f를 사용합니까?bash는 완료 나는 다음과 같은 bash는 완성 기능을 만들었습니다
그냥 -G globpat
compgen의 옵션을 사용
COMPREPLY=($(compgen -G "/upgrade/*.tgz.gpg" -- ${cur}));
어떤 이유로 당신이 사용하려는 경우 정확히 -W wordlist
(예를 들어 다른 뭔가 파일 이름 섞어),이 또한 가능하다 :
files=(/upgrade/*.tgz.gpg)
COMPREPLY=($(compgen -W '"${files[@]}"' -- ${cur}));
모두를 버전은 공백이 포함 된 파일 이름을 올바르게 처리해야합니다 (변형은 허용되지 않습니다).
확인. 두 번째 작품은 잘 작동합니다. 처음은 기이하게 행동합니다. 그것은 파일 이름을 잘 완성하지만 파일에서 선택할 다른 문자를 입력하고 Tab을 누르면 추가 된 문자가 삭제됩니다. –