Como customizar o autocompletar bash para listar os arquivos em outro diretório

3

Como personalizar o autocompletar bash para listar os arquivos em outro diretório para apenas uma opção de script (-seq), para outras opções de script (-speed, -define) o autocomplete padrão é O.K. é isso que eu tenho

 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

Como habilitar o preenchimento bash padrão para outras opções?

    
por Meir 25.10.2017 / 13:52

1 resposta

3

deve usar prev em vez de cur:

_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
    
por 29.10.2017 / 17:40