GNU/Linux >> Linux Esercitazione >  >> Linux

Come personalizzare il completamento automatico di Bash per elencare i file in un'altra directory?

Come personalizzare il completamento automatico di bash per elencare i file in un'altra directory
per una sola opzione di script (-seq), per altre opzioni di script (-speed, -define) il completamento automatico predefinito è OK
questo è quello che ho

 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

Come abilitare il completamento bash predefinito per altre opzioni?

Risposta accettata:

dovrebbe usare prev invece di 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

Linux
  1. Come ottenere un conteggio di file in una directory utilizzando la riga di comando?

  2. Il Bash '?

  3. Come visualizzare l'output di un processo in esecuzione in un'altra sessione Bash?

  4. Come elencare i descrittori di file aperti (e i file a cui si riferiscono) nella sessione corrente di Bash?

  5. Spostare solo gli ultimi 8 file di una directory in un'altra directory?

Come trovare ed elencare in modo ricorsivo i file per data in Linux

Come elencare i file in modo ricorsivo in Linux

Come spostare tutti i file (inclusi quelli nascosti) da una directory all'altra?

Come copiare un file da un'altra directory a quella corrente?

Come elencare l'albero dei dispositivi del kernel

Come elencare i descrittori di file aperti (e i file a cui si riferiscono) nella mia attuale sessione bash