Ok, existem alguns problemas com a sua abordagem.
Você está exportando uma função, que não é portátil entre os shells. watch
executa seus comandos com /bin/sh
, que no seu sistema não é bash
. E qualquer que seja o shell, ele não respeita as exportações de funções, portanto, você recebe o erro.
Em segundo lugar, você pode alterar seu comando para algo como watch bash -c 'func1'
, mas isso também pode não funcionar bem.
A razão aqui é que quaisquer variáveis definidas pelo script não estarão disponíveis para a função. Você pode exportar os que precisa, mas isso começa a ficar confuso.
A solução mais segura é colocar func1
em um script por si só e chamar esse script.
Em resumo, tente:
watch bash -c func1