28

我正在编写一个简单的 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"而不是变量的字符串,有没有办法让它发送用户输入的值?

4

2 回答 2

63

改变:

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

至:

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

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

于 2011-12-22T05:30:33.210 回答
4

重要:不要使用:

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

连同 --post-data。它将覆盖

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

由 wget 发布。HttpServlet 不会接收到 Post-data

于 2016-03-18T12:14:20.133 回答