首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >此字符的语法错误

此字符的语法错误
EN

Unix & Linux用户
提问于 2020-04-16 22:39:48
回答 1查看 47关注 0票数 0

我有这个:

代码语言:javascript
复制
set -e
(
    (
     docker stop html2pdf
     docker rm html2pdf
    ) || { echo; }
) &

我只是尝试在后台运行这些命令,如果其中一个失败了,就忽略它们。

但是我得到了这个错误:

代码语言:javascript
复制
/home/oleg/codes/cm/html-to-pdf/scripts/run.sh: line 13: syntax error near unexpected token `||'
EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2020-04-17 00:31:07

我猜脚本中包含了set -e,因为这是继承环境的一部分。

一个简单的方法就是在孩子身上忽略这一点:

代码语言:javascript
复制
( set +e ; docker stop html2pdf ; docker rm html2pdf ) &

现在,在(...)代码的范围内,set -e不会生效,这两个命令都会执行。

以下任何命令都会因为任务的回退而自动执行(即使docker命令失败)。

例如:

代码语言:javascript
复制
$ 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

我们可以看到docker命令运行和echo命令运行。

票数 1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/580571

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档