Erro de sintaxe ao tentar definir o loop do shell nohup

1

O que há de errado com "fazer" nos seguintes itens:

nohup while true; do ./mysync.sh; sleep 1800; done &

Continue recebendo o seguinte erro de sintaxe:

sh: Syntax error: "do" unexpected

Se eu executar o comando sem o nohup , ele funcionará bem e não gerará erros.

    
por orlando lopez 25.02.2017 / 16:48

1 resposta

1

Problema : o shell está vendo comandos separados como "nohup while true" & "do ./mysync.sh" & "dormir 1800" & "feito &".
Aqui, o shell vê um problema com "do" inesperado.

Solução : você teria que agrupar seus comandos em uma unidade, seja citando ou fazendo um pequeno script de shell. Dê esta unidade para nohup e vai funcionar.

(Solução A) Junte-se aos comandos como este:
nohup bash -c "while true; do ./mysync.sh; sleep 1800; done &"
(Solução B) Coloque os comandos while true; do ./mysync.sh; sleep 1800; done & em mywrapper.sh e execute isto: nohup mywrapper.sh

    
por 25.02.2017 / 17:14

Tags