如何在终端中运行 Web URL 脚本

如何在终端中运行 Web URL 脚本

我试图通过我的终端启动一个脚本。它在浏览器中运行良好,但在终端上运行不正常。

我试过了...

sudo curl https://www.example.com/myscript?info=1

sudo wget -q -O- https://www.example.com/myscript?info=1

sudo wget https://www.example.com/myscript?info=1

这是我得到的输出...

[2] 25034
[1]   Done 

但我知道它不起作用,因为部分代码会发送一封电子邮件,当我从浏览器运行 url 时会发送这封电子邮件,但从终端运行时却无法发送。

答案1

似乎你&的 url 中有某个地方,因此 shell 正在将进程发送到后台。

为了解决这个问题,请引用该 url。

例如,如果您使用:

curl https://www.example.com/myscript/foo&bar

shell 会将 url 视为https://www.example.com/myscript/foo,之后&会导致curl https://www.example.com/myscript/foo进程进入后台。请注意,barafter&也缺失了。

因此你需要引用该 url:

curl 'https://www.example.com/myscript/foo&bar'
curl "https://www.example.com/myscript/foo&bar"

还要注意,?对 shell 来说具有特殊含义(表示任何单个字符),因此当您的参数中的任何地方有 shell 元字符时,您应该引用该参数(除非有意)。

相关内容