Shell数组
#!/bin/bash
#数组的使用
#数组赋值方式:
#1. user[index]=value index为0,1,2,3,4....数组下标值
#2. user=(value0 value1 value2....) 既user[n]=valuen
#3. user=([2]=value2 [1]=value1 [0]=value0) 指定数组数据方式赋值,顺序是 可以任意的
#4. user=([2]=value2 value3 valu4) 指定数组首地址开始赋值,后面数据依次累加
#从passwd 文件中取出所有用户
index=0 #数组从0开始 跟c/c++中数组的使用有些相同
for i in `cut -d: -f1 /etc/passwd`
do
user[$index]=$i
let index=$index+1 #let 相当于index = $(($index+1))
done
index=1
#取数组数据值:
# ${ user[index] }没有指定索引值既为数组首地址数据
# ${user[@]} 和 ${user[*]}表示数组全部数据区别在于
#当使用双引号"${user[@]}" "${user[*]}" 展开以后第一个是一个分散的列表,*是一个整体 ,去掉双引号两个表达式效果一样无差别。
for name in " ${user[@]} "
do
echo " $index:$name"
let index=$index+1 #也可以 let index+=1
done
echo "--------------------------------------------"
echo " print all user in one line:"
echo
#把所有数组元素作为一个整体打印
echo "${user[*]}"
#把数组元素作为单个的个体进行打印
#echo ${user[@]}
#echo ${user[*]}
echo
echo "------------------------------------------------"
echo "Reassign the user array , the user names will be lost:"
user=([50]=zhangze , emma , patrick )
echo
echo ${user[*]}
echo
exit 0