Переменные в данных поста wget - PullRequest
28 голосов
/ 22 декабря 2011

Я работаю над простым 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 ]

62 голосов
/ 22 декабря 2011

изменить:

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

на:

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

Руководство по bash о Quoting: http://www.gnu.org/software/bash/manual/bashref.html#Quoting

3 голосов
/ 18 марта 2016

важно: Не используйте:

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

вместе с --post-data. Это переопределит

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

выдано wget. Пост-данные не будут получены HttpServlet

...