声明:

本博客欢迎转发,但请保留原作者信息!

新浪微博:@孔令贤HW;

博客地址:http://blog.csdn.net/lynn_kong

内容系本人学习、研究和总结,如有雷同,实属荣幸!

看了一个老外的自动化安装OpenStack的脚本,里面有些语法对我来说比较高级,比如下面这个函数:

function setconf() {local i=1for element in "$@"doIFS=':', read -ra array <<< "$element"if [[ "${array[0]}" = "infile" ]]; thenlocal input=${array[1]}continueelif [[ "${array[0]}" = "outfile" ]]; thenlocal output=${array[1]}continuefipara[$i]="-e s#${array[0]}#${array[1]}#g "para+=${para[$i]}i=$(($i + 1))doneif [[ "$output" ]]; thencp $output ${output}.orgsed $para $input > $outputelsecp $input ${input}.orgsed -i $para $inputfi
}

这里主要是read的用法:

-r:不允许反斜杠来转义任何字符

-a array:把输入内容按分隔符(空格或者跳格之类)分配给数组,连续的空格也算为1个分割。输入后,数组规格跟c语言一样,用var[n]的格式表示,下标从0开始,直接echo $var 的效果等于echo ${var[0]}。当echo 数组带下标的时候,记得加{}表达,比如echo ${a[1]}。

该函数使用示例:

    setconf infile:$BASE_DIR/conf/etc.keystone/keystone.conf \outfile:/etc/keystone/keystone.conf \"<KEYSTONE_IP>:${KEYSTONE_IP}" \"<DB_KEYSTONE_USER>:${DB_KEYSTONE_USER}" \"<DB_KEYSTONE_PASS>:${DB_KEYSTONE_PASS}"

shell编程--read读到数组相关推荐

  1. 【linux】shell 编程之字符串与数组

    前言 对字符串的操作在众多的编程语言中可以说是最基础的了,字符串(String)就是一系列字符的组合.字符串是 Shell 编程中最常用的数据类型之一(除了数字和字符串,也没有其他类型了). 一.sh ...

  2. Shell编程之函数与数组

    文章目录 一.shell函数 1.Shell函数定义的基本格式 2.函数返回值 3.函数的调用 4.函数的作用范围 5.函数的参数 6.函数的递归 函数递归实现阶乘计算 递归遍历目录,使目录和普通文件 ...

  3. Shell编程基础---函数、数组

    2019独角兽企业重金招聘Python工程师标准>>> 本文索引: shell中的函数 shell中的数组 告警系统需求分析 shell中的函数 shell作为一种编程语言,必然有函 ...

  4. Linux高级专题详解--shell编程大全(shell变量,if语句,case语句,for循环,while循环,函数调用,数组,正则表达式,shell脚本三剑客--grep,sed,awk家族)

    shell编程 初始shell 程序 语言 编程 ---------------------------------- 语言 自然语言:汉语.英语 计算机语言:c语言.c++.(java php py ...

  5. 掌握shell编程中数组的常见用法及示例

    From: http://www.embeddedlinux.org.cn/html/jishuzixun/201211/19-2386.html 给大家分享下数组的用法小例子,希望能给大家一点帮助. ...

  6. 轻松掌握shell编程中数组的常见用法及示例

    缘起:在老男孩进行linux培训shell编程教学中,发现不少水平不错的网友及同学对数组仍然很迷糊,下面就给大家分享下数组的用法小例子,希望能给大家一点帮助.其实SHELL的数组很简单,好用.我们学习 ...

  7. shell编程数组与冒泡算法排序详解

    shell编程数组与冒泡算法排序详解 一 数组的四种表达方式 二 数组的增删改查操作 三 数组传参 3.1 主程序向函数传数组参数 3.2 从函数返回数组到主程序 四 冒泡算法排序 一 数组的四种表达 ...

  8. linux shell编程学习——数组使用

    linux的shell的编程方面很强大,最近在写脚本的时候,需要用到shell的数组.下面对最近的学习和使用做个简单的总结. 定义 linux的数组分两种,一种是普通的下标数组,一种是关联数组.前者和 ...

  9. 秒懂的shell编程数组与冒泡算法排序详解

    shell编程数组与冒泡算法排序详解 一.数组的四种表达方式 二 .数组的增删改查操作 三 .数组传参 3.1 主程序向函数传数组参数 3.2 从函数返回数组到主程序 四 .冒泡算法排序 一.数组的四 ...

最新文章

  1. Springboot在IDEA热部署的配置方法
  2. 网络工程原理与实践教程实验安排
  3. onbeforeunload与onunload事件
  4. java 枚举内嵌枚举_高度有用的Java ChronoUnit枚举
  5. 使用引用的方式交换数据的数值
  6. 由于芯片短缺 通用将生产部分无自动启停功能新车
  7. R-CNN家族梳理:从R-CNN到Mask R-CNN
  8. python向mysql插入数据
  9. ECCV 2022 | AirDet: 无需微调的小样本目标检测方法
  10. 【HAVENT原创】nginx 配置
  11. bzoj 2429 聪明的猴子
  12. 外联式 vue+element ui 表格导出e'xcel
  13. java wav合并_java – 如何将两个wav文件合并/合并到一个wav文件中?
  14. python中import re_python中re模块
  15. 2019年蚂蚁金服面经(已拿Offer)!附答案!!
  16. 常见linux服务器存储空间,怎么在linux上查看服务器的存储空间多大
  17. 【计算机毕业设计】java线上教学平台 springboot智慧教学系统
  18. 欢迎查看Vue总结知识
  19. C++ 语法基础课 习题2 —— printf 语句与判断结构
  20. bnuoj 44359 快来买肉松饼

热门文章

  1. mysql 实现批量添加和更新功能
  2. 30家最赚钱移动互联网公司出炉
  3. html是div环绕文字,文字环绕一个div在HTML
  4. 江苏电信欢go重新定义宽带标准
  5. 程序员千万别去外包公司!
  6. 牛客网QR46 字符集合
  7. 史上十大权势女性排行榜:武则天为何不如慈禧
  8. Gmail登录不了哦
  9. Java随笔-String有多长?
  10. YOLO系列总结:YOLOv1, YOLOv2, YOLOv3, YOLOv4, YOLOv5, YOLOX