Eu quero definir uma função e chamar essa função a cada n segundos. Como um exemplo:
function h
echo hello
end
A chamada h
funciona:
david@f5 ~> h
hello
Mas ao usar o relógio, ele não...
watch -n 60 "h"
...e eu recebo:
Every 60.0s: h f5: Wed Oct 10 21:04:15 2018
sh: 1: h: not found
Como posso executar watch
em fish, com a função que acabei de definir?
Outra maneira seria salvar a função e pedir
watch
para invocar fish:funcsave
salva a definição da função nomeada em um arquivo no caminho~/.config/fish/functions/
, portanto,~/.config/fish/function/h.fish
no caso acima.Não há maneira fácil. Por padrão ,
watch
usa/bin/sh
para executar comandos, mas leva-x
:No entanto, nada não funcionará
fish
porque ah
função não é exportada para o ambiente:Em
bash
você pode exportar uma função para o ambienteexport -f
e usá-la dentrowatch
assim:Se você usar
fish
, poderá criar um script wrapper e chamá-lo comwatch
:Observe também que
fish
tem.
esource
assim você pode definir a função em outro arquivo e poder reutilizá-la em outros scripts como esse:Sim eu fiz! Ele faz o trabalho, mas eu ainda gostaria de
fish
ter algo nativo. Eu escolho o nomeblotch
para que não interfira no bashwatch
.E salve a função para uso posterior.
Outra maneira bem fácil seria...