Erro de sintaxe no nohup (…)

4

Estou tentando testar o comando nohup no bash shell executando um comando em segundo plano, efetuando logout e back in novamente e esperando que a saída do comando esteja no arquivo nohup.out . Aqui está o comando que estou tentando executar:

$ nohup (sleep 120; echo "job done") &

Mas continuo recebendo o erro:

bash: syntax error near unexpected token 'sleep'
    
por Yousif Shibeika 03.03.2018 / 21:19

1 resposta

16

O comando nohup não é uma palavra-chave ; ele não pode receber um subshell como o comando a ser executado e, em vez disso, requer um comando real executável:

nohup bash -c 'sleep 120; echo "job done"' &

O Bash está lhe dando um erro de sintaxe porque acha que você está tentando declarar uma função chamada "nohup", que é o único caso em que um parêntese simples pode aparecer na segunda palavra na linha de comando:

nohup () { ... ; }

A mensagem de erro diz a você (obscuramente) que esperava ver o parêntese correto e não a palavra "dormir".

    
por 03.03.2018 / 21:40