shell对url进行encode/decode

最近用shell开发web项目

很多地方需要用到对url的转义操作


urlencode() {
local LANG=C
local length="${#1}"
i=0
while :
do
[ $length -gt $i ]&&{
local c="${1:$i:1}"
case $c in
[a-zA-Z0-9.~_-]) printf "$c" ;;
*) printf '%%%02X' "'$c" ;; 
esac
}||break
let i++
done
}

urldecode(){
u="${1//+/ }"
echo -e "${u//%/\\x}"
}
执行的时候


直接使用

urlencode "需要转义的参数" 

urldecode "需要解码的字符串"

原生的shell支持 busybox以及bash都可以兼容

QQ截图20190329202642.jpg

内容版权声明:除非注明,否则皆为本站原创文章。

评论