wget发布数据中的变量

时间:2011-12-22 05:26:59

标签: bash variables wget postdata

我正在使用一个简单的bash脚本从Tumblr网站下载图像。我们的想法是使用read来获取用户的登录信息,并wget --post-data登录,这就是我所拥有的:

read -p "Tumblr login email: " EMAIL
read -p "Tumblr login password: " PASSWRD
wget --user-agent=Mozilla/5.0 --save-cookies cookies.txt --post-data 'email=$EMAIL&password=$PASSWRD' --no-check-certificate https://www.tumblr.com/login

但是,它正在发送"$EMAIL""$PASSWRD"而不是变量的字符串,有没有办法让它发送用户输入的值?

2 个答案:

答案 0 :(得分:62)

变化:

--post-data 'email=$EMAIL&password=$PASSWRD'

为:

--post-data="email=$EMAIL&password=$PASSWRD"

bash手册关于Quotinghttp://www.gnu.org/software/bash/manual/bashref.html#Quoting

答案 1 :(得分:3)

重要的是: 不要使用:

--header="Content-Type: text/xml" 

与--post-data一起使用。它会覆盖

--header="Content-Type: application/x-www-form-urlencoded" 

由wget发布。 HttpServlet

不会收到后期数据