shell学习与使用,边学边用之一!

1.  使用wget和shell脚本下载一系列路路径有规律的资源:
    我想下载ubuntu社区杂志fullcircle但是不想一个一个的点击进去然后在下载。
      于是我想到用wget工具加上shell脚本来做。
      其实我几乎没写过shell脚本。所起没写一行代码读会先测试下。
      最后得到的脚本如下:
#!/bin/bash
issue="http://dl.fullcirclemagazine.org/issue"
country=_en

for index in `seq 1 53`;
do
wget -c  $issue$index$country.pdf;
done


2. 迭代
上面的for循环才terminal上测试如下,在加上另外两中使用生成列表的方法:
changeyi@changeyi-laptop:~$ for x in {1..3};do echo $x;done
1
2
3
changeyi@changeyi-laptop:~$ for x in `seq 1 3`; do echo $x;done
1
2
3
changeyi@changeyi-laptop:~$ initty=/dev/tty[1-8];for tty in $initty;do echo $tty;done;
/dev/tty1
/dev/tty2
/dev/tty3
/dev/tty4
/dev/tty5
/dev/tty6
/dev/tty7
/dev/tty8
changeyi@changeyi-laptop:~$ 


3. 字符串的连接:
第一项的代码中有一处地方值得注意:
wget -c  $issue$index$country.pdf;

如果像下面一样使用的话会错:
dl_issue=$issue$index$country.pdf;
wget -c $dl_issue;

报错如下:
引用

./try.sh: line 7: dl_issue:找不到命令
wget:未指定 URL
用法: wget [选项]... [URL]...

打印dl_issue变量看看,如下:
changeyi@changeyi-laptop:~$ ./try.sh 
./try.sh: line 7: dl_issue:找不到命令

./try.sh: line 7: dl_issue:找不到命令

./try.sh: line 7: dl_issue:找不到命令

changeyi@changeyi-laptop:~$ cat try.sh 
#!/bin/bash
issue="http://dl.fullcirclemagazine.org/issue"
country=_en

for index in `seq 1 3`;
do
dl_issue = $issue$index$country.pdf;
 
echo  $dl_issue 
done
changeyi@changeyi-laptop:~$ 



直接echo如下,看来是赋值的问题啊:
changeyi@changeyi-laptop:~$ ./try.sh 
http://dl.fullcirclemagazine.org/issue1_en.pdf
http://dl.fullcirclemagazine.org/issue2_en.pdf
http://dl.fullcirclemagazine.org/issue3_en.pdf
changeyi@changeyi-laptop:~$ cat try.sh 
#!/bin/bash
issue="http://dl.fullcirclemagazine.org/issue";
country="_en";

for index in `seq 1 3`;
do
echo "$issue$index$country.pdf";
done
changeyi@changeyi-laptop:~$ 



未完待续……

猜你喜欢

转载自banxi1988.iteye.com/blog/1209562
今日推荐