为什么 cURL 在子 shell 中运行?

为什么 cURL 在子 shell 中运行?

在我的 CentOS 7 机器上,我运行如下命令:

$curl boxname:5000/page

输出是:

$curl boxname:5000/page
[1] 55068

$ curl: (6) Couldn't resolve host 'boxname'

[1]+ Exit 6          curl boxname:5000/page

我不担心它无法解析主机名,这是预期的。问题是 - 为什么curl 在子shell 中运行?我需要它不生成新作业,以便我可以检查退出代码。

答案1

如果实际的 URL 包含不带引号的&字符,则该点之前的命令将被 shell 解释为在后台运行的命令。 URL 的其余部分将被视为新命令。

在命令行上指定 URL 时,请始终引用 URL。这也可以防止 URL 中的其他字符被 shell 解释为特殊字符(例如;?

答案2

我已经找到问题了。我使用的 URL 中有一个 & 符号!

相关内容