#!/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. A Tour of Go Variables with initializers

    A var declaration can include initializers, one per variable. If an initializer is present, the type ...

  2. Learning JavaScript Design Patterns The Singleton Pattern

    The Singleton Pattern The Singleton pattern is thus known because it restricts instantiation of a cl ...

  3. windows gui测试工具:AutoIt

    windows gui测试工具:AutoIt 2017-01-09 目录 1 简介2 示例1 记事本自动化操作3 示例2 上传文件 1 简介 返回 AutoIt v3 是用以编写并生成具有 BASIC ...

  4. c++ template笔记

    1. 数组 template <typename T, int N> void array_print(T (&arr)[N]) { for(int i = 0; i < N ...

  5. 拼接<a>标签相关属性

    <s:iterator value="#session.funcs" id="sonbean"> <s:if test="%{#so ...

  6. SQL中使用WITH AS提高性能(二)

    继上一节 对比两条查询,第一是用了with as 第二条语句没用with as 查看执行计划的效果 WITH vep AS ( SELECT package.OrderCode , RANK() OV ...

  7. Android Studio中Gradle使用详解

    一)基本配置 build配置 buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools. ...

  8. 引用js或css后加?v= 版本号的用法(转)

    <span style="font-size:14px;">css和js带参数(形如.css?v=与.js?v= 或 .css?version=与.js?version ...

  9. Java中字符流与字节流的区别

    字符流处理的单元为2个字节的Unicode字符,分别操作字符.字符数组或字符串,而字节流处理单元为1个字节,操作字节和字节数组.所以字符流是由Java虚拟机将字节转化为2个字节的Unicode字符为单 ...

  10. Linux curl命令参数详解--转载

    linux curl是通过url语法在命令行下上传或下载文件的工具软件,它支持http,https,ftp,ftps,telnet等多种协议,常被用来抓取网页和监控Web服务器状态. 一.Linux ...