我正在尝试通过我的终端启动一个脚本。它在我的浏览器中运行良好,但在终端中运行良好。
我试过了...
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 元字符时,您应该引用该参数(除非有意)。
| 归档时间: |
|
| 查看次数: |
65623 次 |
| 最近记录: |