是否可以在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
"
我想url编码DATA变量,因为它的结果有&在它,它弄乱了第二个wget中的参数,是否有一种方法来url编码DATA变量而不使用PHP来进行url编码?
答案 0 :(得分:3)
以下是对shell字符串DATA
进行URL编码的一种方法:
DATA=$(python -c "import urllib, sys; print urllib.quote(sys.argv[1])" "$DATA")
这是另一个:
DATA=$(perl -MURI::Escape -e 'print uri_escape($ARGV[0]);' "$DATA")