shell 中数组的基本操作
来源:互联网 发布:网络尖兵下载 编辑:程序博客网 时间:2024/05/16 07:12
数组(Array)是一个由若干同类型变量组成的集合,引用这些变量时可用同一名字。数组均由连续的存储单元组成,最低地址对应于数组的第一个元素,最高地址对应于最后一个元素。bash Shell只支持一维数组,数组从0开始标号,以array[x]表示数组元素,那么,array[0]就表示array数组的第1个元素、array[1]表示array数组的第2个元素、array[x]表示array数组的第x+1个元素。
bash Shell取得数组值(即引用一个数组元素)的命令格式是:
${array[x]}
#引用array数组标号为x的值,$符号后面的大括号必不可少
定义
declare -a city # city为数组名
赋值
#!/bin/bashcity[0]=Nanjingcity[1]=Beijingcity[9]=Melbournecity[15]=NewYorkecho "city[0]=${city[0]}"echo "city[1]=${city[1]}"echo "city[9]=${city[9]}"echo "city[15]=${city[15]}"echo "city[2]=${city[2]}"echo "city[10]=${city[10]}"
还可以用小括号将一组值赋给数组
city=(Nanjing Beijing Melbourne NewYork)city=(Nanjing [10]=Atlanta Massachusetts Marseilles)city=([2]=Nanjing [10]=Atlanta [1]=Massachusetts [5]=Marseilles)
array[@]
和array[*]
都表示了array
数组的所有元素
for i in ${city[@]} #将@替换为*亦可do echo $idone
操作
数组字符串所有操作都是针对所有数组元素逐个进行的
切片
city=(Nanjing Atlanta Massachusetts Marseilles)echo "Extracting Substring"echo ${city[*]:0}echo ${city[*]:1}echo ${city[*]:3}echo ${city[*]:0:2} 从编号为0 的开始 ,长度为2echo
剔除
echo "Removing Substring"echo ${city[*]#M*a} //按最小长度删除echo ${city[*]##M*a} //按最大长度删除echoecho "Replcing Substring"echo ${city[*]/M*s/Year}echo ${city[*]//M*s/Year
用read命令从stdin读取一系列的值
read -a array可以将读到的值存储到array数组
echo "What city have you been arrived?"echo "The input should be separated from each other by a SPACE"read -a arrivedcityechofor i in "${arrivedcity[@]}"do echo "$i"done
删除元素
echo "The length of this array is ${#arrivedcity[@]}."echo "Executing UNSET operation........."unset arrivedcity[1] //删除第2个城市echo "The length of this array is ${#arrivedcity[@]}."echo "Executing UNSET operation........."unset arrivedcity //删除所有的城市echo "The length of this array is ${#arrivedcity[@]}."
数组连接
将多个数组合并到一个数组
#定义并赋值city=(Beijing Nanjing Shanghai)person=(Cai [5]=Wu Tang)
方法一
declare -a combine //声明一个数组,其名为combine combine=(${city[@]} ${person[@]})#combine=${city[@]}${person[@]}element_count=${#combine[@]} //获取数组长度index=0while [ "$index" -lt "$element_count" ]do echo "Element[$index]=${combine[$index]}" let "index=$index+1"doneechounset combine //删除数组
方法二
combine[0]=${city[@]}combine[1]=${person[@]}element_count=${#combine[@]}index=0while [ "$index" -lt "$element_count" ]do echo "Element[$index]=${combine[$index]}" let "index=$index+1"doneecho
方法三
declare -a subcombine=${combine[1]} //声明一个数组,其值为${combine[1]} element_count=${#subcombine[@]}index=0while [ "$index" -lt "$element_count" ]do echo "Element[$index]=${subcombine[$index]}" let "index=$index+1"done
0 0
- shell 中数组的基本操作
- shell 中数组的操作
- shell命令之基本的数组操作
- shell中数组的基本用法
- shell脚本中 数组的基本用法
- shell中vi的基本操作
- shell编程笔记——数组的基本操作
- shell的基本操作
- shell的基本操作
- OC中数组的基本操作
- javascript中数组的基本操作
- js中数组的基本操作
- 【c#】c#中 数组 的基本操作
- java中数组的基本操作
- shell的数组操作
- Shell编程之数组、字符串基本操作
- shell 数组的基本使用
- 数组的基本操作
- POJ 2377 Bad Cowtractors(最大生成树—prim算法)
- 数据解析的基类
- 【HttpClient4.5中文教程】其他章节及总结
- nginx root
- Android一点 okhttp3 简单请求
- shell 中数组的基本操作
- 13.webshell
- 在WIN7 64位下使用PC/PPI CABLE的方法:
- java开发中碰到的问题记录
- PL/SQL编程
- shell脚本+scp命令
- 设置tomcat集群使用redis实现分布式session
- netty 5.x
- 时间啊时间