![다른 디렉토리의 파일을 나열하도록 bash 자동 완성을 사용자 정의하는 방법](https://linux55.com/image/120400/%EB%8B%A4%EB%A5%B8%20%EB%94%94%EB%A0%89%ED%86%A0%EB%A6%AC%EC%9D%98%20%ED%8C%8C%EC%9D%BC%EC%9D%84%20%EB%82%98%EC%97%B4%ED%95%98%EB%8F%84%EB%A1%9D%20bash%20%EC%9E%90%EB%8F%99%20%EC%99%84%EC%84%B1%EC%9D%84%20%EC%82%AC%EC%9A%A9%EC%9E%90%20%EC%A0%95%EC%9D%98%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95.png)
하나의 스크립트 옵션(-seq)에 대해서만 다른 디렉토리의 파일을 나열하도록 bash 자동 완성을 사용자 정의하는 방법, 다른 스크립트 옵션(-speed, -define)의 경우 기본 자동 완성은 괜찮습니다. 이것이 제가 가진 것입니다.
export files=`ls /home/tests/`
echo $files #debug
_xtest () {
local cur
COMPREPLY=()
cur=${COMP_WORDS[COMP_CWORD]}
#case "$cur" in
COMPREPLY=( $(compgen -W "${files}" -- ${cur}) )
# esac
return 0
}
complete -F _xtest -o filenames xtest
추가 옵션에 대해 기본 bash 완성을 활성화하는 방법은 무엇입니까?
답변1
cur 대신 Prev를 사용해야 합니다.
_xtest () {
local prev
COMPREPLY=()
prev=${COMP_WORDS[COMP_CWORD-1]}
case "$prev" in
-seq )
COMPREPLY=( $(compgen -W "${files}" -- ${cur}) ) ;;
esac
return 0
}
complete -F _xtest -o filenames xtest