linux shell编程中的数组定义、遍历
2017-08-21 11:32
423 查看
代码如下:
纯文本版:
数组定义法1:
arr=(1 2 3 4 5) # 注意是用空格分开,不是逗号!!
数组定义法2:
array
array[0]="a"
array[1]="b"
array[2]="c"
获取数组的length(数组中有几个元素):
${#array[@]}
遍历(For循环法):
for var in ${arr[@]};
do
echo $var
done
遍历(带数组下标):
for i in "${!arr[@]}";
do
printf "%s\t%s\n" "$i" "${arr[$i]}"
done
遍历(While循环法):
i=0
while [ $i -lt ${#array[@]} ]
do
echo ${ array[$i] }
let i++
done
向函数传递数组:
由于Shell对数组的支持并不号,所以这是一个比较麻烦的问题。
翻看了很多StackOverFlow的帖子,除了全局变量外,无完美解法。
这里提供一个变通的思路,我们可以在调用函数前,将数组转化为字符串。
在函数中,读取字符串,并且分为数组,达到目的。
fun() {
local _arr=(`echo $1 | cut -d " " --output-delimiter=" " -f 1-`)
local _n_arr=${#_arr[@]}
for((i=0;i<$_n_arr;i++));
do
elem=${_arr[$i]}
echo "$i : $elem"
done;
}
array=(a b c)
fun "$(echo ${array[@]})"
数组定义法1: arr=(1 2 3 4 5) # 注意是用空格分开,不是逗号!! 数组定义法2: array array[0]="a" array[1]="b" array[2]="c" 获取数组的length(数组中有几个元素): ${#array[@]} 遍历(For循环法): for var in ${arr[@]}; do echo $var done 遍历(带数组下标): for i in "${!arr[@]}"; do printf "%s\t%s\n" "$i" "${arr[$i]}" done 遍历(While循环法): i=0 while [ $i -lt ${#array[@]} ] do echo ${ array[$i] } let i++ done 向函数传递数组: 由于Shell对数组的支持并不号,所以这是一个比较麻烦的问题。 翻看了很多StackOverFlow的帖子,除了全局变量外,无完美解法。 这里提供一个变通的思路,我们可以在调用函数前,将数组转化为字符串。 在函数中,读取字符串,并且分为数组,达到目的。 fun() { local _arr=(`echo $1 | cut -d " " --output-delimiter=" " -f 1-`) local _n_arr=${#_arr[@]} for((i=0;i<$_n_arr;i++)); do elem=${_arr[$i]} echo "$i : $elem" done; } array=(a b c) fun "$(echo ${array[@]})"
纯文本版:
数组定义法1:
arr=(1 2 3 4 5) # 注意是用空格分开,不是逗号!!
数组定义法2:
array
array[0]="a"
array[1]="b"
array[2]="c"
获取数组的length(数组中有几个元素):
${#array[@]}
遍历(For循环法):
for var in ${arr[@]};
do
echo $var
done
遍历(带数组下标):
for i in "${!arr[@]}";
do
printf "%s\t%s\n" "$i" "${arr[$i]}"
done
遍历(While循环法):
i=0
while [ $i -lt ${#array[@]} ]
do
echo ${ array[$i] }
let i++
done
向函数传递数组:
由于Shell对数组的支持并不号,所以这是一个比较麻烦的问题。
翻看了很多StackOverFlow的帖子,除了全局变量外,无完美解法。
这里提供一个变通的思路,我们可以在调用函数前,将数组转化为字符串。
在函数中,读取字符串,并且分为数组,达到目的。
fun() {
local _arr=(`echo $1 | cut -d " " --output-delimiter=" " -f 1-`)
local _n_arr=${#_arr[@]}
for((i=0;i<$_n_arr;i++));
do
elem=${_arr[$i]}
echo "$i : $elem"
done;
}
array=(a b c)
fun "$(echo ${array[@]})"
相关文章推荐
- linux shell 中数组的定义和for循环遍历
- linux shell 中数组的定义和for循环遍历的方法
- Linux Shell编程之四数组
- C++程序员学Java系列之十二:一维数组定义,初始化,遍历,最值及异常
- 2016/3/20 数组定义 数组遍历 超全局数组 数组元素设置(in_array() 、array_reverse()、count()、array_unique()、unset()、array_values、array_merge、array_push) 列表实例
- 编程小技巧:遍历数组
- 字符数组和字符串,char 和string定义的字符串的区别与遍历
- 南邮编程在线编程题十:动态一维数组的定义与实现
- Linux Shell中的数组及遍历 转
- PHP三维数组的定义与遍历
- [Z]Shell编程中的数组定义、遍历
- 夺命雷公狗---javascript NO:06 数组定义和遍历
- [java学习笔记]java语言基础概述之数组的定义&常见操作(遍历、排序、查找)&二维数组
- 第2章 Java编程基础——FAQ2.24 数组如何定义和初始化?
- java 1,2,3维数组定义,遍历
- 简单编程(十八)定义一个数组来存储12个学生的成绩
- 2013年8月14日、数组第二种定义格式|遍历|最值|
- 【Java编程】Foreach对数组、Collection对象、Iterable对象的遍历
- 第八讲 数组的定义与四种赋值方式、遍历和内存分析
- Linux Shell中的数组及遍历