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