如何在终端中运行 web url 脚本

Adr*_*ian 4 command-line bash

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

我试过了...

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
Run Code Online (Sandbox Code Playgroud)

这是我得到的输出...

[2] 25034
[1]   Done 
Run Code Online (Sandbox Code Playgroud)

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

hee*_*ayl 12

&您的网址中似乎有某个位置,因此外壳程序正在将进程发送到后台。

要解决此问题,请引用 url。

例如,如果您使用:

curl https://www.example.com/myscript/foo&bar
Run Code Online (Sandbox Code Playgroud)

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"
Run Code Online (Sandbox Code Playgroud)

另请注意,?它对 shell 具有特殊含义(意味着任何单个字符),因此当您的参数中的任何位置都有 shell 元字符时,您应该引用该参数(除非有意)。