Ich versuche, in einem Fischschalenskript die Existenz des figlet
zu testen binär. Da ich Linux und OS X verwende, kann ich mich nicht darauf verlassen, dass sich die Datei am selben Speicherort befindet, und muss sie dynamisch auflösen. Ich bin es gewohnt, dies mit $(which)
zu tun in bash, was funktioniert.
Bei Fischen funktioniert das allerdings nicht richtig. Warum?
function print_hostname --description 'print hostname'
if test -x (which figlet)
hostname | figlet
end
end
Akzeptierte Antwort:
Verwenden Sie type
in fish
wie in einer Bourne-ähnlichen Shell:
if type -q figlet
hostname | figlet
end
Oder auf ausführbare Dateien in $PATH
zu beschränken (Ignorieren von Funktionen, Builtins):
if command -s figlet > /dev/null
hostname | figlet
end