shell数组的用法

变量:存储单个元素的内存空间:
数组(多个连续的内存空间):存储多个元素的连续的内存空间:

数组名:
  索引:编号从0开始,属于数值索引;
  注意:索引也可支持使用自定义的格式,而不仅仅是数值格式:
  bash的数组支持稀疏格式
  引用数组中元素:${ARRAY_NAME[INDEX]}

声明数组:
  declare -a ARRAY_NAME
  declare -A ARRAY_NAME:关联数组:kv

数组元素的赋值:
  (1)一次只赋值一个元素:
     ARRAY_NAME[INDEX]=VALUE
     #weekdays[0]=”Sunday”
     #weekdays[4]=”Thursday”

(2)一次赋值全部元素:
     ARRAY_NAME=(“VAL1”,”VAL2”,”VAL3”,...)
  (3)只赋值特定元素:
     ARRAY_NAME=([0]=”VAL1” [3]=”VAL2” ...)
  (4)read -a ARRAY

引用数组中的某个元素:

${ARRAY_NAME[INDEX]}
  注意:省略[INDEX]表示引用下标为0的元素

显示数组中所有元素:

${ARRAY_NAME[*]},或者${ARRAY_NAME[@]}

统计数组的长度(数组中元素的个数):
  ${#ARRAY_NAME[*]},${#ARRAY_NAME[@]}

引用数组中的元素:
  依次取出数组中所有元素:${ARRAY[@]}或者${ARRAY[*]}

数组切片:

取出数组中指定长度的元素:${ARRAY[@]:offset:number}:也叫做数组切片
  offset:要跳过的元素个数
  number:要取出的元素个数
  例 :#echo ${weekdays[@]:1:2}

取出偏移量之后的所有元素:${ARRAY[@]:offset}
  #echo ${weekdays[@]:1}
向数组中追加元素:
  ARRAY[${#ARRAY[*]}]
删除数组中的某元素:
  unset ARRAY[INDEX]
关联数组:
  declare -A ARRAY_NAME
  ARRAY_NAME=([index_name]=’val1’ [index_name2=’val2’ ...])

时间: 2024-08-05 05:12:45

shell数组的用法的相关文章

Linux Shell系列教程之(六)Shell数组

本文是Linux Shell系列教程的第(六)篇,更多shell教程请看:Linux Shell系列教程 Shell在编程方面非常强大,其数组功能也非常的完善,今天就为大家介绍下Shell数组的用法. Shell支持一维数组(不支持多维数组),并且没有限定数组的大小. 类似与C语言,数组元素的下标由0开始编号.获取数组中的元素要利用下标,下标可以是整数或算术表达式,其值应大于或等于0. 一.Shell数组的定义 在Shell中,用括号来表示数组,数组元素之间用“空格”分割开. 定义数组的一般形式

HBase基本概念和hbase shell常用命令用法

1. 简介 HBase是一个分布式的.面向列的开源数据库,源于google的一篇论文<bigtable:一个结构化数据的分布式存储系统>.HBase是Google Bigtable的开源实现,它利用Hadoop HDFS作为其文件存储系统,利用Hadoop MapReduce来处理HBase中的海量数据,利用Zookeeper作为协同服务. 2. HBase的表结构 HBase以表的形式存储数据.表有行和列组成.列划分为若干个列族/列簇(column family). Row Key colu

【转载】HBase基本概念和hbase shell常用命令用法

1. 简介 HBase是一个分布式的.面向列的开源数据库,源于google的一篇论文<bigtable:一个结构化数据的分布式存储系统>.HBase是Google Bigtable的开源实现,它利用Hadoop HDFS作为其文件存储系统,利用Hadoop MapReduce来处理HBase中的海量数据,利用Zookeeper作为协同服务. 2. HBase的表结构 HBase以表的形式存储数据.表有行和列组成.列划分为若干个列族/列簇(column family). Row Key colu

linux shell 数组建立及使用技巧

转自linux shell 数组建立及使用技巧 linux shell在编程方面比windows 批处理强大太多,无论是在循环.运算.已经数据类型方面都是不能比较的. 下面是个人在使用时候,对它在数组方面一些操作进行的总结. 1.数组定义 [[email protected] ~]$ a=(1 2 3 4 5)[[email protected] ~]$ echo $a1 一对括号表示是数组,数组元素用“空格”符号分割开. 2.数组读取与赋值 得到长度: [[email protected] ~

NSString NSArray和可变字符串、数组的用法

// 使用实例方法创建NSString对象 NSString *string1 = [[NSStringalloc]initWithFormat:@"姓名流年"]; NSLog(@"%@", string1); NSString *string2 = [[NSStringalloc]initWithFormat:@"Ming"]; NSLog(@"%@", string2); NSString *string3 = [[NSS

shell数组和字典

shell数组和字典 #!/bin/bash echo "shell定义字典" #必须先声明 declare -A dic dic=([key1]="value1" [key2]="value2" [key3]="value3") #打印指定key的value echo ${dic["key1"]} #打印所有key值 echo ${!dic[*]} #打印所有value echo ${dic[*]} #遍

linux shell数组

from: http://www.jb51.net/article/34322.htm bash shell只支持一维数组,但参数个数没有限制. 声明一个数组:declare -a array(其实不用声明,按数组方式直接赋值给变量即可,BASH就知道那是数组) 数组赋值:(1) array=(var1 var2 var3 ... varN)(2) array=([0]=var1 [1]=var2 [2]=var3 ... [n]=varN)(3) array[0]=var1    arrya[

shell--4、Shell 数组

数组中可以存放多个值.Bash Shell 只支持一维数组(不支持多维数组),初始化时不需要定义数组大小(与 PHP 类似). 与大部分编程语言类似,数组元素的下标由0开始. Shell 数组用括号来表示,元素用"空格"符号分割开,语法格式如下: array_name=(value1 ... valuen) 实例 #!/bin/bash my_array=(A B "C" D) 我们也可以使用下标来定义数组: array_name[0]=value0 array_n

shell相关的用法

shell相关的用法 if用法 -q不输出结果,只做判断 [[email protected] tmp]# if grep -q '^daixuan:' /etc/passwd; then echo "daixuan text" ;fi ,当/etcpasswd下包含daixuan,就输出daixuan test case用法 [[email protected] tmp]# vim case.sh #/bin/bash read -p "Please input a num