公司人员命名图片习惯的加上了空格,今天有个需求,要批量下载这个写图片,这下蛋疼了
正确的url 是这样的
http://url 2119 01.jpg
http://url 001.jpg
写到文本里就要加转义,变成
http://url\ 2119\ 01.jpg
http://url\ 001.jpg
结果循环的结果就蛋疼了
1
2
3
4
5
6
7
|
#!/bin/bash pic=$( cat list.txt)
for i in $pic
do echo "$i"
done |
结果
1
2
3
4
5
6
|
[root@localhost ~] # sh download.sh
http: //url \
2119\ 01.jpg http: //url \
001.jpg |
全乱了
解决办法:
由于数组元素的分割符号,是由IFS 这个系统内置字段分隔符来控制的,所以脚本重写如下
1
2
3
4
5
6
7
8
9
|
#!/bin/bash pic=$( cat list.txt)
IFSBAK=$IFS # 保存默认的IFS
IFS=$ '\n' #指定分隔符
for i in $pic
do echo "$i"
done IFS=$IFSBAK # 还原默认分隔符
|
结果输出如下:
1
2
3
|
[root@localhost ~] # sh download.sh
http: //url \ 2119\ 01.jpg
http: //url \ 001.jpg
|
这个时候批量下载图片就没问题了
本文转自wks9751CTO博客,原文链接:http://blog.51cto.com/wks97/1651042 ,如需转载请自行联系原作者