
Eu tenho isto:
set -e
(
(
docker stop html2pdf
docker rm html2pdf
) || { echo; }
) &
Estou apenas tentando executar esses comandos em segundo plano e ignorar se um deles falhar.
mas então recebo este erro:
/home/oleg/codes/cm/html-to-pdf/scripts/run.sh: line 13: syntax error near unexpected token `||'
Responder1
Suponho que você tenha set -e
esse script porque faz parte do seu ambiente herdado.
Uma maneira fácil é apenasignorarisso na criança:
( set +e ; docker stop html2pdf ; docker rm html2pdf ) &
Agora dentro do escopo do (...)
código o set -e
não entra em vigor e ambos os comandos são executados.
Qualquer comando a seguir será executado automaticamente (mesmo se os docker
comandos falharem) devido ao plano de fundo da tarefa.
por exemplo
$ 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 os dois docker
comandos executadoseo echo
comando foi executado.