- 浏览: 304873 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
liuyong19832011:
,赞一个
Java通过BufferedWriter追加内容到文件末尾的几种常用方法 -
justjavac:
总结很好,怎么没人支持呢?最近发现iteye踩贴现象很严重。
shell数组的使用
转自:http://www.cnblogs.com/chengmo/archive/2010/09/30/1839632.html
1.数组定义
[chengmo@centos5 ~]$ a=(1 2 3 4 5)
[chengmo@centos5 ~]$ echo $a
1
一对括号表示是数组,数组元素用“空格”符号分割开。
2.数组读取与赋值
得到长度:
[chengmo@centos5 ~]$ echo ${#a[@]}
5
用${#数组名[@或*]} 可以得到数组长度
读取:
[chengmo@centos5 ~]$ echo ${a[2]}
3
[chengmo@centos5 ~]$ echo ${a}
1 2 3 4 5
用${数组名[下标]} 下标是从0开始 下标是:*或者@ 得到整个数组内容
赋值:
[chengmo@centos5 ~]$ a[1]=100
[chengmo@centos5 ~]$ echo ${a}
1 100 3 4 5
[chengmo@centos5 ~]$ a[5]=100
[chengmo@centos5 ~]$ echo ${a}
1 100 3 4 5 100
直接通过 数组名[下标] 就可以对其进行引用赋值,如果下标不存在,自动添加新一个数组元素
删除:
[chengmo@centos5 ~]$ a=(1 2 3 4 5)
[chengmo@centos5 ~]$ unset a
[chengmo@centos5 ~]$ echo ${a}
[chengmo@centos5 ~]$ a=(1 2 3 4 5)
[chengmo@centos5 ~]$ unset a[1]
[chengmo@centos5 ~]$ echo ${a}
1 3 4 5
[chengmo@centos5 ~]$ echo ${#a}
4
直接通过:unset 数组[下标] 可以清除相应的元素,不带下标,清除整个数据。
3.特殊使用
分片:
[chengmo@centos5 ~]$ a=(1 2 3 4 5)
[chengmo@centos5 ~]$ echo ${a[@]:0:3}
1 2 3
[chengmo@centos5 ~]$ echo ${a[@]:1:4}
2 3 4 5
[chengmo@centos5 ~]$ c=(${a[@]:1:4})
[chengmo@centos5 ~]$ echo ${#c[@]}
4
[chengmo@centos5 ~]$ echo ${c}
2 3 4 5
直接通过 ${数组名[@或*]:起始位置:长度} 切片原先数组,返回是字符串,中间用“空格”分开,因此如果加上”()”,将得到切片数组,上面例子:c 就是一个新数据。
替换:
[chengmo@centos5 ~]$ a=(1 2 3 4 5)
[chengmo@centos5 ~]$ echo ${a[@]/3/100}
1 2 100 4 5
[chengmo@centos5 ~]$ echo ${a[@]}
1 2 3 4 5
[chengmo@centos5 ~]$ a=(${a[@]/3/100})
[chengmo@centos5 ~]$ echo ${a[@]}
1 2 100 4 5
调用方法是:${数组名[@或*]/查找字符/替换字符} 该操作不会改变原先数组内容,如果需要修改,可以看上面例子,重新定义数据。
1.数组定义
[chengmo@centos5 ~]$ a=(1 2 3 4 5)
[chengmo@centos5 ~]$ echo $a
1
一对括号表示是数组,数组元素用“空格”符号分割开。
2.数组读取与赋值
得到长度:
[chengmo@centos5 ~]$ echo ${#a[@]}
5
用${#数组名[@或*]} 可以得到数组长度
读取:
[chengmo@centos5 ~]$ echo ${a[2]}
3
[chengmo@centos5 ~]$ echo ${a
用${数组名[下标]} 下标是从0开始 下标是:*或者@ 得到整个数组内容
赋值:
[chengmo@centos5 ~]$ a[1]=100
[chengmo@centos5 ~]$ echo ${a
[chengmo@centos5 ~]$ a[5]=100
[chengmo@centos5 ~]$ echo ${a
直接通过 数组名[下标] 就可以对其进行引用赋值,如果下标不存在,自动添加新一个数组元素
删除:
[chengmo@centos5 ~]$ a=(1 2 3 4 5)
[chengmo@centos5 ~]$ unset a
[chengmo@centos5 ~]$ echo ${a
[chengmo@centos5 ~]$ unset a[1]
[chengmo@centos5 ~]$ echo ${a
[chengmo@centos5 ~]$ echo ${#a
直接通过:unset 数组[下标] 可以清除相应的元素,不带下标,清除整个数据。
3.特殊使用
分片:
[chengmo@centos5 ~]$ a=(1 2 3 4 5)
[chengmo@centos5 ~]$ echo ${a[@]:0:3}
1 2 3
[chengmo@centos5 ~]$ echo ${a[@]:1:4}
2 3 4 5
[chengmo@centos5 ~]$ c=(${a[@]:1:4})
[chengmo@centos5 ~]$ echo ${#c[@]}
4
[chengmo@centos5 ~]$ echo ${c
直接通过 ${数组名[@或*]:起始位置:长度} 切片原先数组,返回是字符串,中间用“空格”分开,因此如果加上”()”,将得到切片数组,上面例子:c 就是一个新数据。
替换:
[chengmo@centos5 ~]$ a=(1 2 3 4 5)
[chengmo@centos5 ~]$ echo ${a[@]/3/100}
1 2 100 4 5
[chengmo@centos5 ~]$ echo ${a[@]}
1 2 3 4 5
[chengmo@centos5 ~]$ a=(${a[@]/3/100})
[chengmo@centos5 ~]$ echo ${a[@]}
1 2 100 4 5
调用方法是:${数组名[@或*]/查找字符/替换字符} 该操作不会改变原先数组内容,如果需要修改,可以看上面例子,重新定义数据。
发表评论
-
[转]Linux文件查找命令find,xargs详述
2013-04-25 17:14 975http://www.cnblogs.com/serendip ... -
Shell编程中Shift的用法[转]
2013-04-25 17:02 956[转]:http://www.cnblogs.com/imag ... -
ANT 执行SHELL脚本
2013-03-20 09:20 5284ANT 执行SHELL脚本 solaris环境 [1]vi ... -
eval学习与应用
2013-04-25 17:09 1046eval的作用是再次执行命 ... -
awk使用经验
2013-03-14 16:37 01. 统计列数。 FIELD_NUM=`cat "$ ... -
【转】用shell生成简单格式的xml
2013-02-25 21:53 2080http://blog.csdn.net/dengzhaoqu ... -
shell数组的使用
2012-08-31 10:40 1428B shell #!/bin/bash #set -x ... -
在sed中使用变量 通常,我们使用sed进行变量替换的时候,替换和被替换变量都是hard-coded的。例如: sed -n ‘/comm/p’ /tmp/
2012-07-17 10:44 2492在sed中使用变量 通常,我们使用sed进行变量替换的时候, ... -
shell中的文件分类、合并和切割
2012-06-29 09:45 3274sort用法 s o r t命令选项很长,下面仅介绍各种选项。 ... -
shell合并两个文件(列)
2012-06-29 09:45 11223题目如下: file1. 1 2 2 3 3 4 4 ... -
shell中cut命令的使用方法
2012-06-28 22:23 1828cut命令是用来剪下文本文件里的数据,文本文件可以是字段类型或 ... -
shell合并两个文件
2012-06-28 16:48 1138file1. 1 2 2 3 3 4 4 5 5 6 ... -
read读入分隔符
2012-06-28 08:49 1285$ cat 1.txt 1,a 2 ... -
sort命令
2012-06-12 10:19 970实用的分类sort操作 ... -
sed替换
2012-06-28 16:49 1045比如,要将目录/modules下面所有文件中的zhangsan ... -
grep正则表达式
2012-06-28 16:48 1082grep the regex.txt grep "t ... -
shell字符串截取
2011-12-14 09:28 1185sed "s/\'/\'\'/g" a.t ... -
shell的while循环
2011-12-14 09:15 1231#!/bin/sh #filename:2.sh b=9 ... -
Shell计算
2011-12-12 14:03 789echo "这是计算:1+2+3+...的函数&qu ... -
Shell变量名使用的特殊字符
2011-09-08 11:28 1620$# 传送给命令Shell的参数序号 ...
相关推荐
shell数组循环 测试shell数组,循环的例子: arr=(a b c) echo 所有的内容如下:${arr[@]} echo 数组的长度:${#arr[*]} for var in ${arr[@]} do echo 打印的内容:$var done 输出的内容如下: 以上...
主要介绍了Linux Shell 数组的创建及使用技巧,本文讲解了数组定义、数组读取与赋值以及特殊使用,需要的朋友可以参考下
目录: 一、 Shell简介 二、 Shell变量 三、 Shell数组 四、 Shell控制结构 五、 Shell函数 六、 Shell调试
下面是个人在使用时候,对它在数组方面一些操作进行的总结。 1.数组定义 [chengmo@centos5 ~]$ a=(1 2 3 4 5) [chengmo@centos5 ~]$ echo $a 1 一对括号表示是数组,数组元素用“空格”符号分割开。...
Shell 数组 数组中可以存放多个值。Bash Shell 只支持一维数组(不支持多维数组),初始化时不需要定义数组大小(与 PHP 类似)。...我们也可以使用下标来定义数组: array_name[0]=value0 array_name[1]=value1 ar
Shell 数组与关联数组 1.数组 1.1. 数组定义 一对圆括号表示数组,数组元素之间用空格符号分割 xiaosi@Qunar:~$ a=(1 2 3) xiaosi@Qunar:~$ echo $a 1 xiaosi@Qunar:~$ a=(yoona lucy tom) xiaosi@Qunar:~$ echo $a...
讲解了linux/unix下shell中对数组的操作
shell命令在linux系统中是一个非常重要的功能了,我们可以通过它来做N多的事情,本文给大家介绍linux shell 数组建立及使用技巧,需要的朋友可以参考下
bash shell只支持一维数组,但参数个数没有限制。声明一个数组:declare -a array(其实不用声明,按数组方式直接赋值给变量即可,BASH就知道那是数组)数组赋值:(1) array=(var1 var2 var3 … varN)(2) array=([0]=...
shell中数组的定义及遍历,先直接看示例: #!/bin/sh #定义方法一 数组定义为空格分割 arrayWen=(a b c d e f) #定义方法二 arrayXue[0]=m arrayXue[1]=n arrayXue[2]=o arrayXue[3]=p arrayXue[4]=q arrayXue[5]=r...
说明:shell中数组的下标默认是从0开始的 1、将字符串放在数组中,获取其长度 代码如下:#!/bin/bashstr=”a b –n d”array=($str)length=${#array[@]}echo $length for ((i=0; i<$length; i++))doecho ${array...
下面小编就为大家带来一篇shell 使用数组作为函数参数的方法(详解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
主要介绍了Shell动态生成数组的多种方法,本文给出while循环法和for循环法,以及使用seq生成数组法,需要的朋友可以参考下
本文为大家介绍linxu shell中数组的相关知识,并举了很多例子供参考,包括数组的复制,计算,删除,替换等,是学习shell 数组的不可多得的好文章。 数组的声明: 1)array[key]=value # array[0]=one,array[1]=two2)...
今天小编就为大家分享一篇关于Linux shell数组与关联数组的用法实例,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
平时写shell脚本也经常遍历数组,但是一下没答上来,被鄙视了。 所以平时学习还是好好总结吧,不能每次都问度娘谷爷。IT 知识体系较为庞大,细节的东西也太多,平时遇到问题应该的多总结记笔记。 linux 中定义一个...