Teste de shell de peixe para existência de arquivo em $ PATH

4

Estou tentando testar em um script de shell de peixe a existência do binário figlet . Como eu uso Linux e OS X, não posso depender do arquivo estar no mesmo local e precisar resolvê-lo dinamicamente. Estou acostumado a fazer isso com $(which) no bash, que funciona.

Com peixes, embora isso não funcione corretamente. Por quê?

function print_hostname --description 'print hostname'
  if test -x (which figlet)
    hostname | figlet
  end
end
    
por binaryanomaly 14.09.2016 / 23:32

1 resposta

9

Use type em fish como no shell tipo Bourne:

if type -q figlet
  hostname | figlet
end

Ou para limitar a executáveis em $PATH (ignorando funções, builtins):

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

Veja também Por que não usar “qual”? O que usar então?

    
por 14.09.2016 / 23:45

Tags