在网上被多次问到,如何把文章中的每一行都存储到shell的数组中,哈哈,其实只要合理运用shell的数组、重定向和循环结构实现起来很容易的。
信手写了一个,但作为例子足够说明问题了。
这个例子是把系统的用户名都存储到shell的数组PASSWD中,并打印出来。
1 #!/bin/ksh
2 #!/bin/bash
3 # wang_xiaoyu@qq.com
4 ############ 存储每个用户名到数组PASSWD中
5 # 数组下标初始化
6 index=0
7 while read LINE
8 do
9 PASSWD[$index]=`echo $LINE | awk -F: '{print $1}'`
10 # echo $index
11 # echo ${PASSWD[$index]}
12 let index++
13 done < /etc/passwd #要读取的文件,生产中可设置为变量
14 ############ 打印每个数据元素
15 index=0
16 while [ $index -lt ${#PASSWD[*]} ]
17 do
18 echo -en ${index}":\t"${PASSWD[$index]}"\n"
19 sleep 1
20 let index++
21 done
~
2 #!/bin/bash
3 # wang_xiaoyu@qq.com
4 ############ 存储每个用户名到数组PASSWD中
5 # 数组下标初始化
6 index=0
7 while read LINE
8 do
9 PASSWD[$index]=`echo $LINE | awk -F: '{print $1}'`
10 # echo $index
11 # echo ${PASSWD[$index]}
12 let index++
13 done < /etc/passwd #要读取的文件,生产中可设置为变量
14 ############ 打印每个数据元素
15 index=0
16 while [ $index -lt ${#PASSWD[*]} ]
17 do
18 echo -en ${index}":\t"${PASSWD[$index]}"\n"
19 sleep 1
20 let index++
21 done
~
本文转自xiaoyuwang 51CTO博客,原文链接:http://blog.51cto.com/wangxiaoyu/201547,如需转载请自行联系原作者