
Tengo esto:
set -e
(
(
docker stop html2pdf
docker rm html2pdf
) || { echo; }
) &
Solo intento ejecutar esos comandos en segundo plano e ignorarlos si uno de ellos falla.
pero luego me sale este error:
/home/oleg/codes/cm/html-to-pdf/scripts/run.sh: line 13: syntax error near unexpected token `||'
Respuesta1
Supongo que tienes el script set -e
en ese script porque es parte de tu entorno heredado.
Una manera fácil es simplementeignorarque en el niño:
( set +e ; docker stop html2pdf ; docker rm html2pdf ) &
Ahora, dentro del alcance del (...)
código, set -e
no surte efecto y ambos comandos se ejecutan.
Cualquier comando siguiente se ejecutará automáticamente (incluso si los docker
comandos fallan) debido al segundo plano de la tarea.
p.ej
$ cat x
#!/bin/bash
set -e
( set +e ; docker stop html2pdf ; docker rm html2pdf ) &
echo hello
$ ./x
hello
$ Error response from daemon: No such container: html2pdf
Error: No such container: html2pdf
Podemos ver que ambos docker
comandos se ejecutaron.yel echo
comando se ejecutó.