小编yab*_*yab的帖子

传递变量时正确使用curl --data-urlencode

我正在尝试优化我的代码,并借用了一段特定的代码.我想删除sed所以我没有在主循环中使用任何外部进程.

function sendMsg () {
value=$(echo $1 | sed 's/ /%20/g;s/!/%21/g;s/"/%22/g;s/#/%23/g;s/\&/%26/g;s/'\''/%28/g;s/(/%28/g;s/)/%29/g;s/:/%3A/g;s/\//%2F/g');
str="http://www.xxxx.com/api.ashx?v=1&k=$Key&a=send&w=$value";
curl -s $str;
}
Run Code Online (Sandbox Code Playgroud)

为了清楚起见,我编辑了这个.$ value只是通过函数末尾的curl命令转换为适当的url输出.

虽然这很好用,但我最感兴趣的是尽可能快地处理它,如果可以的话,不要求外部进程.

感谢您的评论到目前为止!

我到目前为止是这样的:

function sendMsg () {
str="http://www.xxxx.com/api.ashx?v=1&k=$Key&a=send&w=";
curl -s $str --data-urlencode "$1";
}
Run Code Online (Sandbox Code Playgroud)

我至少在正确的轨道上吗?

bash optimization curl sed

9
推荐指数
1
解决办法
3万
查看次数

标签 统计

bash ×1

curl ×1

optimization ×1

sed ×1