GNU/Linux >> Znalost Linux >  >> Linux

Jak přizpůsobit automatické doplňování Bash tak, aby vypisovalo soubory v jiném adresáři?

Jak přizpůsobit automatické doplňování bash tak, aby vypisovalo soubory v jiném adresáři
pouze pro jednu možnost skriptu (-seq), pro ostatní možnosti skriptu (-speed, -define) je výchozí automatické dokončování OK.
to je to, co mám

 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

Jak povolit výchozí dokončování bash pro další možnosti?

Přijatá odpověď:

by měl použít prev místo 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. Jak přesunout všechny soubory (včetně skrytých) z jednoho adresáře do druhého?

  2. Jak získat počet souborů v adresáři pomocí příkazového řádku?

  3. The Bash ‘?

  1. Jak zobrazit výstup běžícího procesu v jiné relaci Bash?

  2. Přesunout pouze posledních 8 souborů v adresáři do jiného adresáře?

  3. Jak vypsat velikost každého souboru a adresáře a seřadit podle sestupné velikosti v Bash?

  1. Jak zkopírovat 10 posledních souborů z jednoho adresáře do druhého?

  2. Jak získám absolutní adresář souboru v bash?

  3. Jak změním adresář v Git Bash pomocí Git pro Windows?