--- bash_completion | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) --- bash_completion +++ bash_completion 2015-08-13 06:50:46.873519910 +0000 @@ -945,16 +945,21 @@ _tilde() _dollar() { local s="" - local -i glob=0 - + local -i glob=0 cmd=0 shopt -q extglob && let glob++ ((glob == 0)) && shopt -s extglob [[ "$COMP_LINE" == cd* ]] && s="/" case "$1" in - \$\(*|\`*) - COMPREPLY=($(compgen -c -P '$(' -S ")$s" -- ${1#??})) ;; + \$\(*) + COMPREPLY=($(compgen -c -P '$(' -S ")$s" -- ${1#??})) + let cmd++ + ;; + \`*) + COMPREPLY=($(compgen -c -P '\`' -S "\`$s" -- ${1#?})) + let cmd++ + ;; \$\{*) COMPREPLY=($(compgen -v -P '${' -S "}$s" -- ${1#??})) ;; \$*) @@ -966,7 +971,7 @@ _dollar() if ((${#COMPREPLY[@]} > 0)) ; then ((${#COMPREPLY[@]} == 1)) && eval COMPREPLY=\(${COMPREPLY[@]}\) - else + elif ((cmd == 0)); then eval COMPREPLY=\(${1}\) fi