GNU/Linux >> Znalost Linux >  >> Linux

Parametr _path_files a Compadd Ignore-files?

Jaký je formát pro volbu -F _path_files a compadd ?

Do _path_files předávám několik adresářů :

_path_files -W "($base_directories)" -/

Ale některé z těch adresářových stromů nechci pro tento konkrétní příkaz dokončit.

Dokumentaci, kterou mohu najít pro _path_files říká, že přijímá -F možnost – stejně jako compadd , ale nemohu najít formát, ve kterém je předat.

Točení kolem také nebylo příliš plodné.

Zkoušel jsem například

_path_files -W "($base_directories)" -/ -F shared; # shared still shows up
_path_files -W "($base_directories)" -/ -F "(shared)"; # barfs on that guy

Přijatá odpověď:

To vypadá správně, pokud chcete ignorovat shared v kořenovém adresáři adresářového stromu, tj. pokud ignorujete jeden z $base_directories . Ale pokud jste chtěli ignorovat shared někde hlouběji v hierarchii potřebujete -F "(shared **shared)" . Vzory můžete také umístit do pole, což sníží potíže s citováním.

local -a ignored base_directories
base_directories=(…)
ignored=(shared '*/shared')
_path_files -W base_directories -/ -F ignored

Příklady jsou ve standardní distribuci v _cvs a _darcs .

Pokud to nepomůže, zkuste prozkoumat, co se děje, přidáním set -x a set +x kolem problematického kódu nebo setopt local_options xtrace (neboli set -x a měnit možnosti pouze po dobu trvání aktuální funkce).


Linux
  1. Rozdíl mezi firewallem se sdíleným hardwarem a firewallem pro vyhrazený hardware

  2. Windows – sdílená složka mezi hostem Qemu Windows a hostitelem Linuxu?

  3. Načítání sdílených knihoven a využití RAM?

  1. Shell skript s funkcí a parametrem jako proměnnými?

  2. Řez / Grep A Df -h?

  3. Grep And Tail -f?

  1. Pthreads a Vfork?

  2. Jak vložit informace o verzi do sdílené knihovny a binárního souboru?

  3. Ubuntu rozpozná spustitelný soubor jako sdílenou knihovnu a nespustí jej kliknutím