可以在shell脚本中对变量进行urlencode吗?

Sve*_*ahn 4 shell wget sh

是否可以在Shell脚本中对变量进行url编码?

#!/bin/bash 

now=$(date +"%T") 

DATA=$(wget -q -O -   "http://someurl.com/x.htm?callback=webRequest&exthrs=1&extMode=&fund=1&entitlement=0&skipcache=&extendedMask=1&partnerId=2&output=json&noform=1")

wget -q -O - "http://somewhere.com?abc=$1&responseData=$DATA"

echo "-----COMPLETE----- $now   $1 $RANDOM  
"
Run Code Online (Sandbox Code Playgroud)

我想对DATA变量进行URL编码,因为它的结果中包含&,它弄乱了第二个wget中的参数,有没有一种方法可以对DATA变量进行URL编码而不使用PHP进行URL编码?

Joh*_*024 5

这是一种URL编码shell字符串的方法DATA

DATA=$(python -c "import urllib, sys; print urllib.quote(sys.argv[1])"  "$DATA")
Run Code Online (Sandbox Code Playgroud)

这是另一个:

DATA=$(perl -MURI::Escape -e 'print uri_escape($ARGV[0]);' "$DATA")
Run Code Online (Sandbox Code Playgroud)