【问题标题】:Variables in wget post datawget 发布数据中的变量
【发布时间】:2012-01-25 20:26:24
【问题描述】:

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

【问题讨论】:

    标签: bash variables wget postdata


    【解决方案1】:

    改变:

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

    到:

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

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

    【讨论】:

      【解决方案2】:

      重要: 不要使用:

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

      与 --post-data 一起。它将覆盖

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-11-17
        • 2014-09-03
        • 1970-01-01
        • 2019-04-28
        • 2011-08-26
        • 2013-07-15
        • 2011-12-01
        • 1970-01-01
        相关资源
        最近更新 更多