Bash 数组遍历
无论使用任何一种编程语言,数组都可以说是最常见的数据结构。而数组遍历则更是常用的操作。由于写 Bash 脚本比较少,每次需要遍历数组时,都是现用现查,网上又有很多资料不是特别靠谱,所以,找起来很是麻烦。这次干脆一劳永逸,把查询到的资料整理出来,方便后续查找。废话少说,直接上代码吧。
01 | #!/bin/bash |
02 | # |
03 | # 数组遍历示例 |
04 | # |
05 | # D瓜哥,http://www.diguage.com/ |
06 |
07 | # 声明一个数组变量 |
08 | declare -a arr=(element1 element2 element3) |
09 |
10 | #遍历数组 |
11 | for i in "${arr[@]}" |
12 | do |
13 | echo "$i" |
14 | done |
15 |
16 | echo -e "\n---------------------------------\n" |
17 |
18 | # 直接遍历一个字符串列表 |
19 | for dbn in a b c d e f; |
20 | do |
21 | echo $dbn |
22 | done |
23 |
24 | echo -e "\n---------------------------------\n" |
25 |
26 | # 这样也可以,只是这样写,看着好不爽 |
27 | listOfNames="RA |
28 | RB |
29 | R C |
30 | RD" |
31 |
32 | for name in $listOfNames # Note: No quotes |
33 | do |
34 | echo "$name" |
35 | done |
36 |
37 | echo -e "\n---------------------------------\n" |
38 |
39 | ## 声明一个数字变量,可以带引号 |
40 | declare -a array=( "one" "two" "three" ) |
41 |
42 | # 获取数组长度 |
43 | arraylength=${ #array[@]} |
44 |
45 | # 遍历数组,获取下标以及各个元素 |
46 | for (( i=1; i<${arraylength}+1; i++ )); |
47 | do |
48 | echo $i " / " ${arraylength} " : " ${array[$i-1]} |
49 | done |
50 |
51 | echo -e "\n---------------------------------\n" |
52 |
53 | # 可以直接使用列表来声明数组 |
54 | files=( "/etc/passwd" "/etc/group" "/etc/hosts" ) |
55 | for i in "${files[@]}" |
56 | do |
57 | echo $i |
58 | done |
59 |
60 | echo -e "\n---------------------------------\n" |
61 |
62 | # 循环从终端接收输入并打印出来,也就是以换行符作为分隔符 |
63 | while read name |
64 | do |
65 | echo "$name" |
66 | done |
这篇文章的大部分示例是从 Loop through array of strings in bash script? – Stack Overflow
这个问答中摘录出来的。特此感谢!
参考资料
- Loop through array of strings in bash script? – Stack Overflow
- 在Bash中将字符串拆分成数组 | zrong’s blog
- bash shell之数组使用
作 者: D瓜哥,https://www.diguage.com/
原文链接:https://wordpress.diguage.com/archives/147.html
版权声明:非特殊声明均为本站原创作品,转载时请注明作者和原文链接。
原文链接:https://wordpress.diguage.com/archives/147.html
版权声明:非特殊声明均为本站原创作品,转载时请注明作者和原文链接。