GNU/Linux >> Linux Esercitazione >  >> Linux

Test del guscio di pesce per l'esistenza di un file nel percorso $?

Sto cercando di testare in uno script di conchiglie di pesce l'esistenza del figlet binario. Dato che uso Linux e OS X, non posso fare affidamento sul fatto che il file si trovi nella stessa posizione e devo risolverlo dinamicamente. Sono abituato a farlo con $(which) in bash, che funziona.

Con il pesce però questo non funziona correttamente. Perché?

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

Risposta accettata:

Usa type in fish come in una shell simile a Bourne:

if type -q figlet
  hostname | figlet
end

O per limitare agli eseguibili in $PATH (ignorando funzioni, built-in):

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

Linux
  1. Risorse per la programmazione della shell portatile?

  2. Script Shell per spostare i file più vecchi?

  3. Hai bisogno di una shell per Scp?

  4. Estensioni di file per script di shell Unix?

  5. Unit test per script di shell

Comando ls in Linux per elencare i file

Abilita timestamp per il comando cronologia in Fish Shell

Descrittori di file e script di shell?

Cos'è un file .sh?

Un file .sh può essere un malware?

Uno script di shell può attendere che un file cambi e agisca?