/temptwo.sh & pid=$! ; wait $pid || rc=$?
Não faz muito sentido IMHO, no entanto.
/temptwo.sh & pid=$! ; wait $pid ; rc=$?
if [ "$rc" -gt 0 ]; then
...
Estou tentando deixar um comando ser executado em segundo plano, mas também usar o "||" sintaxe para executar um comando diferente se o primeiro falhar. Exemplo:
$( <run-this-in-background> & || <run-this-if-failed>)
No entanto, estou recebendo um erro de sintaxe :
command substitution: line 15: syntax error near unexpected token '||'
Esta é a linha exata:
$(./temptwo.sh & || rc=$?)
Meu código completo é o seguinte ...
Eu sei que parece um pouco estranho fazer rc=$?
quando eu poderia fazer isso na linha seguinte, no entanto estamos usando um logger que irá sair do seu programa se qualquer linha sair com $? ! = 0, então a maneira de contornar isso é usando "./someCommand || rc = $?" que sairá com "0", mas também nos dará o código de retorno.
#default success code:
rc=0
#run temptwo.sh in the background. If it fails, set rc=$?
$(./temptwo.sh & || rc=$? )
#Trying to get the process id of "temptwo.sh" below (not sure if works)
pid=$!
#Wait until the process finishes
wait $pid
Tags bash linux shell scripting shell-script