我有一个简单的 bash 脚本:
#!/bin/bash
wget -q 'http://requestb.in/1fq0r3s1?foo=a%2Bb' -O /dev/null
如果我从命令行运行它,然后检查 http://requestb.in/1fq0r3s1?inspect我懂了
请求参数
富:a+b
这正是我所期望的。
然而,当 CRON 运行 bash 脚本时,我看到
请求参数
富:AB
看起来好像某些东西在发送之前已经解码了 URL,将其转换%2B
为+
接收服务器随后将其解释为空格。
有人能解释一下这一点并帮助我弄清楚如何让脚本在 cron 中像从命令行运行时一样运行吗?
(注意:curl
没有遭受同样的行为,但我有兴趣了解为什么wget
会出现这样的行为)
答案1
%(百分比)表示 cron 中的新行!
因此,您要么像这样退出它foo=a\%2Bb
,要么将命令放在 bash 文件中,然后在 crontab 中运行该文件。