Error de sintaxis en este carácter ||

Error de sintaxis en este carácter ||

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 -een 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 -eno surte efecto y ambos comandos se ejecutan.

Cualquier comando siguiente se ejecutará automáticamente (incluso si los dockercomandos 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 dockercomandos se ejecutaron.yel echocomando se ejecutó.

información relacionada