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

标签 shell sh wget

是否可以在 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  
"

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

最佳答案

这是对 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")

关于shell - 可以在 shell 脚本中对变量进行 urlencode 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29755942/

相关文章:

bash - csh/sh for loop - 怎么做?

linux - 使用 shell 脚本更新版本

Bash 脚本 - 在一个存档中压缩多个目录

bash - 在 systemd 引导期间访问标准输入

bash - 如何仅在 wget 或 curl 下载较新文件时才执行操作?

command-line - 如何用 wget 解决空的 index.html 问题?

shell - wget 的 stderr 在写入屏幕时与写入文件时看起来如此不同

linux - 当变量再次具有特殊字符时,如何在 sed 命令中使用变量?

linux - Linux 下批量音乐目录重命名脚本/命令 (bash)

java - 从 Java 执行 screen 命令