スペースを含むbashパラメータの完成

スペースを含むbashパラメータの完成

パラメータに空白を含むbash完了スクリプトを生成するには、パラメータは空白で区切られている限りうまく機能しますが、空白を含み、改行などで区切られたパラメータでは機能させることはできません。

_api(){
...
COMPREPLY=( $( compgen -W "$args"  -- "$cur" ) )
...
}
complete -F _api ./command

答え1

以下を行います。

_api(){
...
local IFS=$'\n'
COMPREPLY=( $( compgen -W "$args"  -- "$cur" ) )
...
}
complete -F _api ./command

関連情報