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}的区别

最新文章

  1. 微信支付:JSAPI支付一直提示URL未注册
  2. 处理海量数据的高级排序之——快速排序(C++)
  3. WPF--Blend制作Button控件模板
  4. JAVA除法保留小数点后两位的两种方法 Java Math的 floor,round和ceil的总结
  5. 【转】MessageBox
  6. hdu 2121 , hdu 4009 无定根最小树形图
  7. 给table中某一列的文字右对齐
  8. Play on Words(有向图欧拉路)
  9. html 页面实现指定位置的跳转
  10. Windows上安装MongoDB步骤
  11. why TCP guarentee delivery?
  12. 《Android进阶》Sqlite的使用
  13. codeforces 895B XK Segments 二分 思维
  14. Python 序列化模块(json,pickle,shelve)
  15. 【原创】大叔问题定位分享(3)Kafka集群broker进程逐个报错退出
  16. Google 宣布在 4 月 1 日关闭站内搜索
  17. Matlab数据处理——数据的保存和读取方法操作
  18. .Net反编译软件
  19. 【C#小知识】C#中一些易混淆概念总结(五)---------深入解析C#继承
  20. jmeter 非GUI执行测试,导入jtl文件没有响应数据出来办法

热门文章

  1. 执行jar包指定main
  2. Python_使用smtplib+email完成邮件发送
  3. js字符串数组['1','2','3']转number
  4. 信不信由你!iPhone6屏幕宽度不一定是375px,iPhone6 Plus屏幕宽度不一定是414px
  5. 金融云原生漫谈(三)|银行云原生基础设施构建:裸金属VS虚拟机
  6. 离线下载第三方Python包
  7. 使用.NET 6开发TodoList应用(27)——实现API的Swagger文档化
  8. 从AAB文件生成APK文件
  9. R语言:关于rJava包的安装
  10. Solon Web 开发,一、开始