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
  • 2014-12-30 17:41 举报
    已邀请:
    0

    xiaotuanyu120

    赞同来自:

    赞,谢谢分享

    回复帖子,请先登录注册

    退出全屏模式 全屏模式 回复
    评分
    可选评分理由: