GNU/Linux >> Znalost Linux >  >> Linux

Testování rybí skořápky na existenci souboru v $path?

Snažím se otestovat ve skriptu rybí skořápky existenci figlet binární. Vzhledem k tomu, že používám Linux a OS X, nemohu se spolehnout na to, že soubor bude na stejném místě a musím jej dynamicky vyřešit. Jsem zvyklý to dělat pomocí $(which) v bash, který funguje.

S rybami to však nefunguje správně. Proč?

function print_hostname --description 'print hostname'
  if test -x (which figlet)
    hostname | figlet
  end
end

Přijatá odpověď:

Použijte type v fish jako v Bourneově skořápce:

if type -q figlet
  hostname | figlet
end

Nebo omezit na spustitelné soubory v $PATH (ignorování funkcí, vestavěných):

if command -s figlet > /dev/null
  hostname | figlet
end

Linux
  1. Rozšíření souborů pro skripty Unix Shell?

  2. Unit testování pro shell skripty

  3. Fish Shell:Jak mohu přizpůsobit barvy pro funkci automatického doplňování?

  1. Jak nainstaluji/vytvořím vlastní výzvu pro rybí skořápku?

  2. Může být soubor .sh malware?

  3. Může skript shellu čekat, až se soubor změní, a provést akci?

  1. Co pro vás může udělat shell dotfile

  2. Příkazy Secure Shell (SSH) pro administraci Linuxu.

  3. Zdroje pro programování Portable Shell?