字符串操作和bash脚本中的变量

时间:2014-01-15 16:00:17

标签: bash shell wget

我尝试使用for脚本中的bash循环使用wget下载内容:

当我不使用变量时,一切正常,当我将它分配给变量500 server error时。这对我来说很奇怪,因为这只是复制粘贴。

我要做的是从循环i中获取数字并将其粘贴到正文中。

这是我的代码:

#!/bin/bash
for i in {1..5}
do
    STR="some_static_stuff_before"$i"some_static_suff_after"
    echo $STR
    wget -O ready/page$i.aspx --header="Host: www.something.com" --header="Pragma: no-cache" --header="Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" --header="Accept-Language: en-en" --header="Accept-Encoding: gzip, deflate" --header="Content-Type: application/x-www-form-urlencoded" --header="Origin: http://something.com" --header="Connection: keep-alive" --header="User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_1) AppleWebKit/537.73.11 (KHTML, like Gecko) Version/7.0.1 Safari/537.73.11" --header="Referer: http://www.something.com/something.aspx" --header="Cookie: ASP.NET_SessionId=u5cmt0figi4bvs40a30gnwsa; __utma=20059042.38323768.1389369038.1389710153.1389780868.6; __utmb=20059042.2.10.1389780868; __utmc=20059042; __utmz=20059042.1389627823.2.2.utmcsr=something.com|utmccn=(referral)|utmcmd=referral|utmcct=/something.aspx" --post-data='"$STR"' http://something.com/something.aspx
done

当我将对象直接粘贴到--post-data时,下载内容没有问题。

我已尝试过--post-data= "/"$STR/""--post-data='"$STR"',但仍无效。

1 个答案:

答案 0 :(得分:0)

您单引引变量引用(除了双引号),这会阻止替换变量值。

而不是

--post-data='"$STR"'

使用

--post-data="$STR"