首页 > Linux, 挨踢(IT), 日拱一卒 > Bash 数组遍历

Bash 数组遍历

2016年3月14日 发表评论 阅读评论 1,164 人阅读    

无论使用任何一种编程语言,数组都可以说是最常见的数据结构。而数组遍历则更是常用的操作。由于写 Bash 脚本比较少,每次需要遍历数组时,都是现用现查,网上又有很多资料不是特别靠谱,所以,找起来很是麻烦。这次干脆一劳永逸,把查询到的资料整理出来,方便后续查找。废话少说,直接上代码吧。

01#!/bin/bash
02#
03# 数组遍历示例
04#
06 
07# 声明一个数组变量
08declare -a arr=(element1 element2 element3)
09 
10#遍历数组
11for i in "${arr[@]}"
12do
13    echo "$i"
14done
15 
16echo -e "\n---------------------------------\n"
17 
18# 直接遍历一个字符串列表
19for dbn in a b c d e f;
20do
21    echo $dbn
22done
23 
24echo -e "\n---------------------------------\n"
25 
26# 这样也可以,只是这样写,看着好不爽
27listOfNames="RA
28RB
29R C
30RD"
31 
32for name in $listOfNames  # Note: No quotes
33do
34    echo "$name"
35done
36 
37echo -e "\n---------------------------------\n"
38 
39## 声明一个数字变量,可以带引号
40declare -a array=("one" "two" "three")
41 
42# 获取数组长度
43arraylength=${#array[@]}
44 
45# 遍历数组,获取下标以及各个元素
46for (( i=1; i<${arraylength}+1; i++  ));
47do
48    echo $i " / " ${arraylength} " : " ${array[$i-1]}
49done
50 
51echo -e "\n---------------------------------\n"
52 
53# 可以直接使用列表来声明数组
54files=( "/etc/passwd" "/etc/group" "/etc/hosts"  )
55for i in "${files[@]}"
56do
57    echo $i
58done
59 
60echo -e "\n---------------------------------\n"
61 
62# 循环从终端接收输入并打印出来,也就是以换行符作为分隔符
63while read name
64do
65    echo "$name"
66done

这篇文章的大部分示例是从 Loop through array of strings in bash script? – Stack Overflow
这个问答中摘录出来的。特此感谢!

参考资料



作 者: D瓜哥,https://www.diguage.com/
原文链接:https://wordpress.diguage.com/archives/147.html
版权声明:非特殊声明均为本站原创作品,转载时请注明作者和原文链接。

分类: Linux, 挨踢(IT), 日拱一卒 标签: ,
  1. 本文目前尚无任何评论.