mahonglin123456 发表于 2018-8-29 09:48:45

shell自定义数组元素分隔符

  公司人员命名图片习惯的加上了空格,今天有个需求,要批量下载这个写图片,这下蛋疼了
  正确的url 是这样的
  http://url2119 01.jpg
  http://url001.jpg
  写到文本里就要加转义,变成
  http://url\ 2119\ 01.jpg
  http://url\ 001.jpg
  结果循环的结果就蛋疼了
#!/bin/bash  
pic=$(cat list.txt)
  

  
for i in $pic
  
do
  
      echo "$i"
  
done
  结果
# sh download.sh  
http://url\
  
2119\
  
01.jpg
  
http://url\
  
001.jpg
  全乱了
  解决办法:
  由于数组元素的分割符号,是由IFS 这个系统内置字段分隔符来控制的,所以脚本重写如下
#!/bin/bash  
pic=$(cat list.txt)
  
IFSBAK=$IFS # 保存默认的IFS
  
IFS=$'\n'   #指定分隔符
  
for i in $pic
  
do
  
      echo "$i"
  
done
  
IFS=$IFSBAK# 还原默认分隔符
  结果输出如下:
# sh download.sh  
http://url\ 2119\ 01.jpg
  
http://url\ 001.jpg
  这个时候批量下载图片就没问题了


页: [1]
查看完整版本: shell自定义数组元素分隔符