linux shell 中数组的定义和for循环遍历的方法
2024-09-04 01:27:42
linux 中定义一个数据的语法为:
variable=(arg1 arg2 arg3 ....)
中间用空格分开。数组的下标从0开始。
1 获取下标为n的元素:
variable[n]
而且不存在数组下标溢出的情况,如果 n>= 数组的长度,那么为空,不会报错。
2 获取数组长度
${#variable[@]}
或者
${#variable[*]}
那么如何用for遍历呢?一共有两种方式:
for i in ${variable[@]}; do
# do something....
done
for i in $(seq 0 ${#variable[@]}); do
e=${variable[$i]}
# do something....
done
以上两种方法 把 @ 换成 * 也行。
但上面
for i in $(seq 0 ${#variable[@]}); do
这个是大于等于0,小于等于variable长度的;也就是说遍历次数要比variable长度多一次;可以通过修正i值来使其相等:
i=`expr $i + 1`
附:shell数组常用操作
一、声明数组
1)array[key]=value # array[0]=one,array[1]=two
2)declare -a array # array被当作数组名
3)array=( value1 value2 value3 ... )
4)array=( [1]=one [2]=two [3]=three ... )
5)array="one two three" # echo ${array[0|@|*]},把array变量当作数组来处理,但数组元素只有字符串本身
二、访问数组
1)${array[key]} # ${array[1]}
三、删除数组
1)unset array[1] # 删除数组中第一个元素
2)unset array # 删除整个数组
四、计算数组的长度
1)${#array}
2)${#array[0]} #同上。 ${#array[*]} 、${#array[@]}。注意同#{array:0}的区别
最新文章
- 微信支付:JSAPI支付一直提示URL未注册
- 处理海量数据的高级排序之——快速排序(C++)
- WPF--Blend制作Button控件模板
- JAVA除法保留小数点后两位的两种方法 Java Math的 floor,round和ceil的总结
- 【转】MessageBox
- hdu 2121 , hdu 4009 无定根最小树形图
- 给table中某一列的文字右对齐
- Play on Words(有向图欧拉路)
- html 页面实现指定位置的跳转
- Windows上安装MongoDB步骤
- why TCP guarentee delivery?
- 《Android进阶》Sqlite的使用
- codeforces 895B XK Segments 二分 思维
- Python 序列化模块(json,pickle,shelve)
- 【原创】大叔问题定位分享(3)Kafka集群broker进程逐个报错退出
- Google 宣布在 4 月 1 日关闭站内搜索
- Matlab数据处理——数据的保存和读取方法操作
- .Net反编译软件
- 【C#小知识】C#中一些易混淆概念总结(五)---------深入解析C#继承
- jmeter 非GUI执行测试,导入jtl文件没有响应数据出来办法
热门文章
- 执行jar包指定main
- Python_使用smtplib+email完成邮件发送
- js字符串数组['1','2','3']转number
- 信不信由你!iPhone6屏幕宽度不一定是375px,iPhone6 Plus屏幕宽度不一定是414px
- 金融云原生漫谈(三)|银行云原生基础设施构建:裸金属VS虚拟机
- 离线下载第三方Python包
- 使用.NET 6开发TodoList应用(27)——实现API的Swagger文档化
- 从AAB文件生成APK文件
- R语言:关于rJava包的安装
- Solon Web 开发,一、开始