1、shell数组
1.1、数组概述
数组中可以存放多个值。Bash Shell 只支持一维数组(不支持多维数组),初始化时不需要定义数组大小(与 PHP 类似)。
与大部分编程语言类似,数组元素的下标由0开始。
Shell 数组用括号来表示,元素用”空格”符号分割开,语法格式如下:
array_name=(value1 value2 … valuen)
例如:my_array=(A B “C” D)
我们也可以使用下标来定义数组:
1.2、数组中的主要方法
- 读取数组 :读取数组元素值的一般格式是:${array_name[index]}
- 获取数组中的所有元素:使用@ 或 * 可以获取数组中的所有元素,
- 获取数组的长度:获取数组长度的方法与获取字符串长度的方法相同
2、shell 数组遍历的3种方法
- 标准的for循环
- for … in循环方法
- While循环法
3、闲话不说,直接上代码
[work@master]$ cat test.sh #!/bin/bash cwd=$(cd $(dirname $0); pwd) function main() { echo "shell 数组介绍" echo "1.读取数组元素值的一般格式,例如:" my_array=(A B "C" D) echo "第一个元素为: ${my_array[0]}" echo "第二个元素为: ${my_array[1]}" echo "第三个元素为: ${my_array[2]}" echo "第四个元素为: ${my_array[3]}" echo "2.获取数组中的所有元素: 使用@ 或 * 可以获取数组中的所有元素,例如:" my_array=(A B "C" D) echo "数组的元素为: ${my_array[*]}" echo "数组的元素为: ${my_array[@]}" echo "3.获取数组的长度: 获取数组长度的方法与获取字符串长度的方法相同,例如:" my_array=(A B "C" D) echo "数组元素个数为: ${#my_array[*]}" echo "数组元素个数为: ${#my_array[@]}" echo "*" echo "shell 数组遍历的3种方法" echo "创建一个数组" array=( A B C D 1 2 3 4) echo "1.标准的for循环" for(( i=0;i<${#array[@]};i++)) do #${#array[@]}获取数组长度用于循环 echo ${array[i]}; done; echo "2.for … in" echo "2.1 遍历(不带数组下标)" for element in ${array[@]} #也可以写成for element in ${array[*]} do echo $element done echo "2.2 遍历(带数组下标)" for i in "${!array[@]}"; do printf "%s\t%s\n" "$i" "${array[$i]}" done echo "3.While循环法" i=0 while [ $i -lt ${#array[@]} ] #当变量(下标)小于数组长度时进入循环体 do echo ${array[$i]} #按下标打印数组元素 let i++ done echo "4.我的示例" pos=0 array=( ) for element in ${array[@]} do end_date=$element start_date="${element: 0: 6}01" let pos++ echo "序号: echo ${pos}, start_date: ${start_date}, end_date: ${end_date}" done } main $@
4、执行和输出结果
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/222084.html原文链接:https://javaforall.net
