#!/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

Shell数组的更多相关文章

  1. Linux Shell 数组

    shell 数组一般都是一维数组. 1. 数组的声明 declare -a arr 该命令将声明一个数组arr,实际上不声明也可以直接定义数组. 2. 数组的初始化 arr=(1 2 3):该命令定义 ...

  2. shell--2.shell数组

    shell 数组 (1)定义数组 shell中,用括号表示数组,数组元素用空格分开,定义数组的一般形式 arrt_name=(val1 val2 val3) 或者 arry_name=(val1 va ...

  3. Linux Shell数组常用操作详解

    Linux Shell数组常用操作详解 1数组定义: declare -a 数组名 数组名=(元素1 元素2 元素3 ) declare -a array array=( ) 数组用小括号括起,数组元 ...

  4. Shell数组例子

    Shell数组例子 循环打印数组,并统计数组的个数: [root@slavedb array]# cat a.sh #!/bin/bash array=( freddy freddie tang sh ...

  5. Shell数组的增删改查

    Shell数组的增删改查 shell数组的定义及取值: a=(1 2 3) [root@bogon tmp]# echo ${a[*]}  1 2 3 [root@bogon tmp]# echo $ ...

  6. 教你使用shell数组

    数组的使用,需要掌握 1.对数组进行赋值 2.通过下标访问数组元素 3.循环遍历所有的元素 代码如下: #!/bin/bash a="39" b="5" c=& ...

  7. linux shell数组

    from: http://www.jb51.net/article/34322.htm bash shell只支持一维数组,但参数个数没有限制. 声明一个数组:declare -a array(其实不 ...

  8. Shell 数组定义与获取

    Shell 数组 bash支持一维数组(不支持多维数组),并且没有限定数组的大小. 类似与 C 语言,数组元素的下标由 0 开始编号.获取数组中的元素要利用下标,下标可以是整数或算术表达式,其值应大于 ...

  9. 【Linux】shell数组

    一.概念 shell数组就是一个元素集合,它把有限个元素用一个名字来命名,然后用编号对他们分区.这个名字称为数组名,用于区分不同内容的编号称为数组的下标. 二.shell数组的定义与增删改查 1.sh ...

  10. shell 数组,双层循环打印变量

    双层循环,打印循环执行次数. 特别注意 ,shell 脚本赋值时 '=' 两侧不能有空格,否则报错,shell command not found 但在if 语句中需要有: STR1="ab ...

随机推荐

  1. HTML5 中的一些新特性

    HTML5是HTML最新的修订版本,包含了新的标签元素,属性和行为,同时包含了一系列可以被用来让 Web 站点和应用更加多样化,功能更强大的技术.HTML5实现了不依赖flash插件播放视频,而且引入 ...

  2. lock语句的递归问题

    原文地址 前几天在网上闲逛,无意中看到有这么一道题及其答案,如下: 根据线程安全的相关知识,分析以下代码,当调用test方法时i>10时是否会引起死锁?并简要说明理由. ) { i--; tes ...

  3. Rational Rose 2007 &Rational Rose 2003 下载及破解方法和汉化文件下载

    这么好的东西,不拿来出分享,我对不起原作者呀.可是我这里不知道作者是谁,感谢在先了. ed2k://|file|%5BIBM%E8%BD%AF%E4%BB%B6%E7%B3%BB%E5%88%97%5 ...

  4. ios的@property属性和@synthesize属性

    当你定义了一系列的变量时,需要写很多的getter和setter方法,而且它们的形式都是差不多的,,所以Xcode提供了@property 和@synthesize属性,@property用在 .h ...

  5. SecureCRT 中 python 命令行使用退格键(backspace)出现 ^H 解决办法

    选项-->会话选项-->映射键 勾选"其他映射"中的两个选择框

  6. IPv6 neighbor discovery

    IPv6 neighbor discovery By stretch | Thursday, August 28, 2008 at 5:03 a.m. UTC Neighbor Discovery P ...

  7. 【Unicode】字符编码表信息

    UTF-8有点类似于Haffman编码,它将Unicode编码为:0x00-0x7F的字符,用单个字节来表示:0x80-0x7FF的字符用两个字节表示:0x800-0xFFFF的字符用3字节表示:   ...

  8. 2. shell之shell配置文件

    1. shell配置文件的位置 最常用的shell有sh和bash等,此处只讲sh和bash 1.1. sh(Bourne Shell)配置文件主要有两个,分别为每个用户主目录中的.profile文件 ...

  9. delta simulation time[(delta cycle), (delta delay)]

    "Delta cycles are an HDL concept used to order events that occur in zero physical time."si ...

  10. MySQL的链接,查看数据库,使用数据库,查看表

    MySQL的链接,查看数据库,使用数据库,查看表 mysql> show databases; +--------------------+ | Database | +------------ ...