shell数组编程
.数组定义 [chengmo@centos5 ~]$ a=( )
[chengmo@centos5 ~]$ echo $a 一对括号表示是数组,数组元素用“空格”符号分割开。 .数组读取与赋值 得到长度: [chengmo@centos5 ~]$ echo ${#a[@]} 用${#数组名[@或*]} 可以得到数组长度 读取: [chengmo@centos5 ~]$ echo ${a[]} [chengmo@centos5 ~]$ echo ${a[*]} 用${数组名[下标]} 下标是从0开始 下标是:*或者@ 得到整个数组内容 赋值: [chengmo@centos5 ~]$ a[]= [chengmo@centos5 ~]$ echo ${a[*]} [chengmo@centos5 ~]$ a[]=
[chengmo@centos5 ~]$ echo ${a[*]} 直接通过 数组名[下标] 就可以对其进行引用赋值,如果下标不存在,自动添加新一个数组元素 删除: [chengmo@centos5 ~]$ a=( )
[chengmo@centos5 ~]$ unset a
[chengmo@centos5 ~]$ echo ${a[*]} [chengmo@centos5 ~]$ a=( )
[chengmo@centos5 ~]$ unset a[]
[chengmo@centos5 ~]$ echo ${a[*]} [chengmo@centos5 ~]$ echo ${#a[*]} 直接通过:unset 数组[下标] 可以清除相应的元素,不带下标,清除整个数据 .特殊使用 分片: [chengmo@centos5 ~]$ a=( )
[chengmo@centos5 ~]$ echo ${a[@]::} [chengmo@centos5 ~]$ echo ${a[@]::} [chengmo@centos5 ~]$ c=(${a[@]::})
[chengmo@centos5 ~]$ echo ${#c[@]} [chengmo@centos5 ~]$ echo ${c[*]} 直接通过 ${数组名[@或*]:起始位置:长度} 切片原先数组,返回是字符串,中间用“空格”分开,因此如果加上”()”,将得到切片数组,上面例子:c 就是一个新数据。 替换: [chengmo@centos5 ~]$ a=( )
[chengmo@centos5 ~]$ echo ${a[@]//} [chengmo@centos5 ~]$ echo ${a[@]} [chengmo@centos5 ~]$ a=(${a[@]//})
[chengmo@centos5 ~]$ echo ${a[@]} 调用方法是:${数组名[@或*]/查找字符/替换字符} 该操作不会改变原先数组内容,如果需要修改,可以看上面例子,重新定义数据。 、shell数组编程 数组是相同数据类型的元素安一定顺序排列的组合,就是把有限个类型相同的变量用一个名字引用,然后用编号区分它们变量的集合 创建和定义数组 TEST=(test1 test2 test3) 数组下标一般从0开始,引用数组方法如下 echo ${TEST[]} 引用第一个数组变量 echo ${TEST[]} 引用第二个数组变量 echo ${TEST[@]} 显示该数组所有参数 echo ${#TEST[@]} 显示该数组参数个数 echo ${#TEST[]} 显示test1字符长度 echo ${TEST[@]:} 打印数组所有值 echo ${TEST[@]:} 打印从第二值个开始的所有值 echo ${TEST[@]::} 打印第一个值和第二个值 echo ${TEST[@]::} 打印第二个值和第三个值 、数组替换操作 、数组删除 unset array[] 、遍历数组 cat > a.sh <<EOF
#!/bin/bash
export NODE_NAMES=(kube-test1 kube-test2 kube-test3 kube-test4)
for node_name in ${NODE_NAMES[*]}
do
echo ${node_name}
done
EOF 参考连接 https://www.cnblogs.com/chengmo/archive/2010/09/30/1839632.html
shell数组编程的更多相关文章
- centos shell脚本编程1 正则 shell脚本结构 read命令 date命令的用法 shell中的逻辑判断 if 判断文件、目录属性 shell数组简单用法 $( ) 和${ } 和$(( )) 与 sh -n sh -x sh -v 第三十五节课
centos shell脚本编程1 正则 shell脚本结构 read命令 date命令的用法 shell中的逻辑判断 if 判断文件.目录属性 shell数组简单用法 $( ) 和$ ...
- SHELL脚本编程-普通数组(列表)和关联数组(字典)
SHELL脚本编程-普通数组(列表)和关联数组(字典) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.数组相关概述 变量: 存储单个元素的内存空间 数组: 存储多个元素的连续的 ...
- Shell脚本编程30分钟入门
Shell脚本编程30分钟入门 转载地址: Shell脚本编程30分钟入门 什么是Shell脚本 示例 看个例子吧: #!/bin/sh cd ~ mkdir shell_tut cd shell_t ...
- Shell高级编程视频教程-跟着老男孩一步步学习Shell高级编程实战视频教程
Shell高级编程视频教程-跟着老男孩一步步学习Shell高级编程实战视频教程 教程简介: 本教程共71节,主要介绍了shell的相关知识教程,如shell编程需要的基础知识储备.shell脚本概念介 ...
- 【Shell脚本学习13】Shell数组:shell数组的定义、数组长度
Shell在编程方面比Windows批处理强大很多,无论是在循环.运算. bash支持一维数组(不支持多维数组),并且没有限定数组的大小.类似与C语言,数组元素的下标由0开始编号.获取数组中的元素要利 ...
- Shell数组:shell数组的定义、数组长度
Shell在编程方面比Windows批处理强大很多,无论是在循环.运算. bash支持一维数组(不支持多维数组),并且没有限定数组的大小.类似与C语言,数组元素的下标由0开始编号.获取数组中的元素要利 ...
- 跟着老男孩一步步学习Shell高级编程实战
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://oldboy.blog.51cto.com/2561410/1264627 本sh ...
- 转:linux shell 数组建立及使用技巧
linux shell在编程方面比windows 批处理强大太多,无论是在循环.运算.已经数据类型方面都是不能比较的. 下面是个人在使用时候,对它在数组方面一些操作进行的总结. 1.数组定义 [che ...
- (C#)Windows Shell 外壳编程系列8 - 同后缀名不同图标?
原文 (C#)Windows Shell 外壳编程系列8 - 同后缀名不同图标? (本系列文章由柠檬的(lc_mtt)原创,转载请注明出处,谢谢-) 接上一节:(C#)Windows Shell 外壳 ...
随机推荐
- PL/SQL块与表达式
一.块(Block) 是PL/SQL的基本执行单元,由定义部分,执行部分(必须)和例外处理部分组成. Declare /*定义部分――定义常量.变量.游标.例外.复杂数据类型*/ Begin /*执行 ...
- javax.jms.JMSException: Failed to build body from content. Serializable class not available to broker. Reason: java.lang.ClassNotFoundException: Forbidden class com.javaliao.portal.model.TbLogVisit! T
javax.jms.jmsexception:无法从内容生成正文.可序列化类不可用于代理原因:java.lang.ClassNotFoundException: 禁止类com.javaliao.por ...
- JavaScript 隐式原型(_proto_)与显示原型(prototype)
作者:苏墨橘链接:https://www.zhihu.com/question/34183746/answer/59043879来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明 ...
- Spark mllib 随机森林算法的简单应用(附代码)
此前用自己实现的随机森林算法,应用在titanic生还者预测的数据集上.事实上,有很多开源的算法包供我们使用.无论是本地的机器学习算法包sklearn 还是分布式的spark mllib,都是非常不错 ...
- 微信公众号开发--微信JS-SDK分享到朋友圈和分享给朋友
之前写过一篇使用微信JS-SDK来实现扫一扫功能的博客 微信公众号开发–微信JS-SDK扫一扫功能 在该博客里介绍了微信JS-SDK的基本用法,其中包括以下几个步骤 还详细介绍了通过config接口注 ...
- sql server 的模糊查询的用法
查询所有姓张的同学Select * from student where left(sName,1)=‘张‘ 看上去很美,如果改成查询名字中带亮的学生怎么做?换一种做法 like Select ...
- vue文件夹上传源码
一. 功能性需求与非功能性需求 要求操作便利,一次选择多个文件和文件夹进行上传:支持PC端全平台操作系统,Windows,Linux,Mac 支持文件和文件夹的批量下载,断点续传.刷新页面后继续传输. ...
- luogu 2152
SuperGcd 二进制算法 1. A = B, Gcd(A, B) = A; 2. A,B为偶数, Gcd(A, B) = 2 * Gcd(A / 2, B / 2); 3. A 为偶数, B 为 ...
- Codeforces Round #525 (Div. 2)题解
Codeforces Round #525 (Div. 2)题解 题解 CF1088A [Ehab and another construction problem] 依据题意枚举即可 # inclu ...
- macOs下安装Android SDK
首先下载 Android SDK for mac 配置安装 1.进入存放 android-sdk-macosx 的目录,然后输入./android sdk就可以调出SDK Manager的图形界面 A ...