~/Special 디렉토리에 bash 기능이 specialcat
있다고 가정해 보겠습니다.cat
specialcat () {
cat ~/Special/$1
}
~/Special 디렉터리가 다음과 같이 설정되어 있다고 가정합니다.
mkdir ~/Special
echo This is the first special file > ~/Special/firstfile
echo This is the second special file > ~/Special/secondfile
Specialcat 기능의 사용법은 다음과 같습니다.
> specialcat firstfile
This is the first special file
매개변수 완성을 활성화하고 싶습니다.
> specialcat firstf[TAB]
생산하다
> specialcat firstfile
현재 작업 디렉토리가 무엇인지, 어떤 파일이 있는지는 중요하지 않습니다.
이것이 지금까지의 나의 시도이다
_options_specialcat () {
COMPREPLY=( $(compgen -W "$(ls ~/Special)") )
}
complete -F _options_specialcat specialcat
이로 인해
> specialcat firstf[TAB]
firstfile secondfile
> specialcat firstf
즉, 일부 파일 이름에서 Tab 키를 누르면 파일 목록이 표시되지만 명령이 완료되지는 않습니다.
_options_specialcat
원하는 동작을 생성하기 위해 기능을 어떻게 변경할 수 있습니까 ?
답변1
현재 매개변수를 기준으로 목록을 필터링해야 합니다.
COMPREPLY=( $(compgen -W "$(ls ~/Special)" -- "$2") )