公司人员命名图片习惯的加上了空格,今天有个需求,要批量下载这个写图片,这下蛋疼了

正确的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 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 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 ,如需转载请自行联系原作者

shell自定义数组元素分隔符相关推荐

  1. Shell替换数组元素之间的间隔符号

    Shell中的数组是这样表示的: arr=(1,2,3,4,5) 它们数组元素的间隔符号为逗号,如果我相把逗号替换为加号: echo ${arr//,/+} 输出: 1+2+3+4+5 这个表达式是我 ...

  2. 在Java中使用分隔符(拆分的对立面)连接数组元素的快速简便方法

    本文翻译自:A quick and easy way to join array elements with a separator (the opposite of split) in Java [ ...

  3. shell unset之后数组元素个数为_PHP删除数组中指定值的元素的方法

    PHP编程中,有时候需要对数组中指定的元素进行删除操作.这篇文章就说几种php语言中如何对数组中指定值的元素进行删除的方法. PHP unset() 函数 PHP删除数组中的元素需要用到函数 unse ...

  4. 数组元素替换_Linux Shell 通俗简要的讲解数组操作

    Shell 数组 什么是数组?学过计算机编程语言的同学们都知道,数组的特性就是一组数据类型相同的集合 Bash Shell 数组中可以存放多个值,且只支持一维数组(不支持多维数组),初始化时不需要定义 ...

  5. c语言学习-自定义函数并调用将一个字符串中的小写字母改为大写字母(数组元素和数组名作函数参数)

    c语言自定义函数并调用将一个字符串中的小写字母改为大写字母(数组元素和数组名作函数参数) 程序流程图: 代码: #include<stdio.h> char strupr(char ch[ ...

  6. shell 数组元素有空格_Shell数组:Shell数组定义以及获取数组元素

    和其他编程语言一样,Shell 也支持数组.数组(Array)是若干数据的集合,其中的每一份数据都称为元素(Element). Shell 并且没有限制数组的大小,理论上可以存放无限量的数据.和 C+ ...

  7. shell 数组元素有空格_Shell数组添加元素及注意事项

    向Shell数组添加元素有多种方法,每种方法在使用时都有一些需要注意的地方,没有见过这方面的总结资料,所以自己总结一下. 直接下标添加 array_name[index]=value 最简单的添加方式 ...

  8. shell 数组元素有空格_Shell数组操作

    1.数组定义 1.1 declare定义 使用declare -a 命令定义数组(数组的索引是从0开始计数的),接下来就可以通过[]操作符为不同索引位置的元素赋值. declare -a names ...

  9. java随机打印一个数组元素_java 怎么随机打印自定义数组里面的字符串

    packageShiyan;importjava.util.Arrays;importjava.util.Random;publicclassasd123{publicstaticvoidmain(S ...

最新文章

  1. java中怎样克隆,如何在Java中克隆列表?
  2. 图的割点、桥与双连通分支
  3. mysql 字段 as_mysql 字段as详解及实例代码
  4. p怎么调用python的实例属性_Python中类的声明,使用,属性,实例属性,计算属性及继承,重写...
  5. 动手学深度学习(PyTorch实现)(八)--AlexNet模型
  6. python ansible模块_Python之——Ansible常用模块及API,pythonansibleapi
  7. 魅族android n内测报名,底层升级安卓 N 内测报名 Flyme 迎来五周年
  8. 5岁自学python编程-三十岁了还可以学编程吗?只要你想,只要你做,什么时候都不晚...
  9. 快速了解layui中layer的使用
  10. 安装Cocoapods, 更新gem出现的问题
  11. 标记偏见_人工智能的影响,偏见和可持续性
  12. PASCAL VOC2012数据集内容解读
  13. java实现角谷步数
  14. 洛谷T30768 动感超人520
  15. QPS、TPS、PV、UV、GMV、IP、RPS的概念解释
  16. 宁德时代换挡,钠电池“接力”锂电池?
  17. 《近匠》专访启明星辰安全研究中心副总监侯浩俊——物联网安全攻防的“线上幽灵”
  18. 技术分享 | MySQL 突如其来的主从复制延迟
  19. js 无害化_道德第一无害
  20. 【可穿戴算法】-进阶-心率变异性分析

热门文章

  1. Android NDK开发:打包so库及jar包供他人使用
  2. python语言源程序文件类型_浅谈Python的文件类型
  3. JSP自定义标签入门实例
  4. jdbc显示mysql的数据_JDBC链接mysql插入数据后显示问号的原因及解决办法
  5. 介绍计算机的英文文章,计算机方面的英语资料,介绍一些计算机的英语短文,有兴趣的可以看...
  6. JDK8新特性(七)之Stream流的count()、filter()、limit()、skip()方法
  7. Spring Data Jpa 报错org.hibernate.LazyInitializationException: could not initialize proxy
  8. Layui--代码修饰器layui.code
  9. oracle存储过程转mysql存储过程修改方法
  10. Aix5.3安装Bash Shell环境