인수에 공백이 없을 때 bash 완료를 작성하는 방법( =
예: myapp은 --arg=argVal1
또는--arg=argVal2
_myapp_completion() {
local cur prev opts
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
opts="--arg1 --arg2 --arg3" # List of valid options for your application
case "${prev}" in
--arg1)
# If previous word is --arg1, complete the values
COMPREPLY=($(compgen -W "value1 value2 value3" -- "${cur}"))
if [[ ${#COMPREPLY[@]} -eq 1 ]]; then
# If only one completion option, remove space after --arg1=
COMPREPLY=(${COMPREPLY[@]/#/${prev}=})
fi
return 0
;;
*)
# Default completion logic for other arguments
COMPREPLY=($(compgen -W "${opts}" -- "${cur}"))
return 0
;;
esac
}
complete -F _myapp_completion ./myapp
위의 예에서는 myapp
공백 없이 후자를 사용합니다.value1 value2 value3
--arg1=