URL在bash脚本中编码字符串

我正在尝试提交post变量的地方编写bash脚本,但是wget将其视为多个URL,我相信是因为它不是URLENCODED …这是我的基本思想

MESSAGE='I am trying to post this information'

wget -O test.txt http://xxxxxxxxx.com/alert.php --post-data 'key=xxxx&message='$MESSAGE''

我遇到了错误,alert.php没有得到post变量,而且它还很糊糊地说

无法解决我无法解决我无法解决尝试..依此类推。

上面的示例是一个简单的sudo示例,但我相信如果可以对其进行url编码,它将通过,我什至尝试了php:

MESSAGE='I am trying to post this information'

MESSAGE=$(php -r 'echo urlencode("'$MESSAGE'");')

但PHP错误了..任何想法?我如何在不执行PHP的情况下在$ MESSAGE中传递变量?

回答:

您希望$MESSAGE用双引号引起来,因此外壳程序不会将其拆分为单独的单词:

ENCODEDMESSAGE=$(php -r "echo urlencode(\"$MESSAGE\");")

以上是 URL在bash脚本中编码字符串 的全部内容, 来源链接: utcz.com/qa/416115.html

回到顶部