shell脚本中 数组的基本用法
在shell脚本中,数组 也是一种常用的数据结构,这篇文章简单 说一下 数组的基本用法.
1 数组的声明
这样就可以 声明 arr ,和 iplist 的数组
#数组的声明 # 用 declare -a variable 语句来清楚地指定一个数组 # 声明一个数组 declare -a arr declare -a iplist
2 数组的 定义,赋值
# 数组的定义 arr=(1 2 3 4 5 6 7 8 9) iplist=( 10.130.2.20 10.130.2.21 10.130.2.22 10.130.2.23 10.130.2.24 10.130.2.25 10.130.2.26 10.130.2.27 10.130.2.28 10.130.2.29 )
#数组的 赋值
arr[0]=zero
arr[1]=one这里赋值请注意,如果 arr[0] 已经有值 会被覆盖。此时 arr0 = zero
3 求数组的长度
# 求数组 长度 2中方式 length=${#arr[@]} length1=${#arr[*]} echo "length:$length" echo "length1:$length1"
4 遍历数组
# 遍历数组 有两种方式 # 1)遍历数组 for(( i=0;i<${#arr[@]};i++)) do echo ${arr[i]} done
# 2)遍历数组
echo ${arr[@]}
2017年 09月 19日 星期二 09:29:33 补充:
4-1 数据的遍历 好像 还有其他的两种方式
#!/bin/sh iplist=( 10.130.2.20 10.130.2.21 10.130.2.23 10.130.2.24 10.130.2.25 10.130.2.26 10.130.2.27 10.130.2.28 10.130.2.29 10.130.2.30)
for ip in iplist[∗]</span><spanclass="hljs−keyword">do</span><spanclass="hljs−builtin">echo</span><spanclass="hljs−variable">{iplist[*]}</span> <span class="hljs-keyword">do</span> <span class="hljs-built_in">echo</span> <span class="hljs-variable">iplist[∗]</span><spanclass="hljs−keyword">do</span><spanclass="hljs−builtin">echo</span><spanclass="hljs−variable">ip
done
echo “----------------------------”
for ip in iplist[@]</span><spanclass="hljs−keyword">do</span><spanclass="hljs−builtin">echo</span><spanclass="hljs−variable">{iplist[@]}</span>
<span class="hljs-keyword">do</span>
<span class="hljs-built_in">echo</span> <span class="hljs-variable">iplist[@]</span><spanclass="hljs−keyword">do</span><spanclass="hljs−builtin">echo</span><spanclass="hljs−variable">ip
done这样 也是可以 遍历shell 中的数组的.
5 单独 取某个值,数组下标从 0 开始
这里取下标为 1 3 的值
echo ${arr[1]} echo ${arr[3]}
6 1) 删除 数组的某个值,这里要注意一点, shell 中的数组特点。
### 测试删除 数组### #!/bin/bash curDir=$(cd "$(dirname "${BASH_SOURCE[0]}")"; pwd); #当前绝对路径 function printarr() { for((i=0;i<${#arr[@]};i++)) do echo "index:$i , ${arr[i]}" done }
# 数组的定义
#arr=(0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 )
arr=(0 1 2 3 4 5 6 7 8 9 10 11 12 )
# 求数组 长度
length=KaTeX parse error: Expected '}', got '#' at position 2: {#̲arr[@]}</span>
…{#arr[@]}"
# 删除 数组 元素
unset arr[0]
echo “arr0 : arr[0]</span>"</span><spanclass="hljs−builtin">echo</span><spanclass="hljs−string">"arr2:<spanclass="hljs−variable">{arr[0]}</span>"</span>
<span class="hljs-built_in">echo</span> <span class="hljs-string">"arr2 : <span class="hljs-variable">arr[0]</span>"</span><spanclass="hljs−builtin">echo</span><spanclass="hljs−string">"arr2:<spanclass="hljs−variable">{arr[2]}”
unset arr[3]
echo “arr3 : arr[3]</span>"</span><spanclass="hljs−builtin">echo</span><spanclass="hljs−string">"lengthafter:<spanclass="hljs−variable">{arr[3]}</span>"</span>
<span class="hljs-built_in">echo</span> <span class="hljs-string">"length after: <span class="hljs-variable">arr[3]</span>"</span><spanclass="hljs−builtin">echo</span><spanclass="hljs−string">"lengthafter:<spanclass="hljs−variable">{#arr[@]}”
printarr
来看一下 结果
arr[0]=0 arr[3]=3 echo "-------------------" printarr
这里 重新 又被赋值成功了。
2)删除整个数组
# 删除整个数组 unset arr
7 1)数组的分片
${arr[@]:number1:number2}
这里 number1 从下标number1 开始取值, number2 往后取几个元素,即取到的新的数组的长度
arr=(1 2 3 4 5 6 7 8 9 10 11 12 13)
echo “{arr[@]:0:3} — ${arr[@]:0:3}”
# 1 2 3
echo “{arr[@]:3:5} — ${arr[@]:3:5}”
# 4 5 6 7 8
echo “{arr[@]:5:4} — ${arr[@]:5:4}”
# 6 7 8 9
2) 数组赋值,分片之后赋值,将分片后的数组,重新赋值给新的数组
newarr=(${arr[@]:0:3})
for(( i=0;i<KaTeX parse error: Expected '}', got '#' at position 2: {#̲newarr[@]}</spa…{newarr[i]}
done
总结: 本文介绍了数组的最基本的用法,也是shell脚本中数组经常用到的。
- 点赞
- 收藏
- 分享
- 文章举报
- shell脚本中 数组的基本用法
- 数组-在Shell脚本中的基本使用介绍
- Shell脚本,包含了[分支 循环 数组 搜索 运算等基本功能]
- 数组-在Shell脚本中的基本使用介绍
- 数组-在Shell脚本中的基本使用介绍
- shell脚本一些基本语句的用法
- shell脚本中数组用法总结及脚本实现冒泡排序
- shell 中的数组基本用法
- linux-shell脚本编程基本用法1
- 数组-在Shell脚本中的基本使用介绍
- shell脚本基本用法
- shell中数组的基本用法
- centos shell脚本编程1 正则 shell脚本结构 read命令 date命令的用法 shell中的逻辑判断 if 判断文件、目录属性 shell数组简单用法 $( ) 和${ } 和$(( )) 与 sh -n sh -x sh -v 第三十五节课
- Shell脚本数组用法小结
- shell数组基本用法
- SHELL学习(一)脚本中的基本知识
- linux操作shell脚本定义数组赋值取值
- 转:expect的基本用法 - Shell - ChinaUnix.net -
- shell 基本用法---持续更新中
- shell脚本学习之$0,$?,$!等的特殊用法