• 默认从0开始索引;也可以单独(像字典一样)pid[35420]=httpd -k ssl,
  • 只能是一维的
  • bash4.0增加了关联数组

数组赋值:

declare -a myarray声明数组

  • 一次一个(可以定义稀疏数组)

numberarray[0]=zero

numberarray[1]=one

numberarray[3]=three

  • 一次全部

students=( Python Java Php C )

stat=( $(cat /proc/$$/stat) )

先将$IFS设置成换行符
IFS="
"
hosts=( `cat /etc/hosts` )逐行读取文件
shs=( *.sh )
for sh in "${shs[@]}  #将当前目录的sh文件放到目录
do
echo $sh
done
  • 按索引

主要用于创建稀疏数组

arr=( [0]=zero [2]=two [3]=three [7]=seven)

  • 从输入读取

read -a dice

while IFS=: read -a userdetails
do
:
done < /etc/passwd

[lixn@Fedora24 bash_learn]$ readarray -n 4 -s 2 food  读入数组 -O定义初始的索引值  -n最大行数  -s从输入的开头跳过几行

访问

${shs[0]}

${ shs [@] }

循环遍历

for name in ${students[@]}

当数组中值带有空格时,需要使用双引号,在for循环遍历时要使用"${array[@]}"  (不带引号和使用*有区别)

数组长度${#students[@]} 或 ${#students[*]}

${#students}返回第一个索引对应的值得长度

${#students[1]}

索引可以使用变量

${shs[@]:0:1}从0开始取一个,并不和索引对应

${shs[@]:3}从3开始的所有

关联数组

declare -A beatles声明关联数组

3 declare -A beatles
4 beatles=( [singer]=John [bassist]=Paul [drummer]=Ringo [guitarist]=George )
5
6 for instrument in ${!beatles[@]}
7 do
8 echo "The ${instrument} is ${beatles[$instrument]}"
9 done

数组操作

1)数组复制

hobbies=( "${array[@]}" )  通过赋值复制,但不适用于稀疏数组

2)向数组追加元素

通过复制方法追加hobbies=( "${array[@] diving} )

使用索引追加hobbies[${#hobbies[@]}}]=rowing

组合两个数组array2+=("${array1[@]}")

3)从数组中删除元素

赋空值得到的一个稀疏数组array[3]=    此时使用${array[3]+"Item 3 is set"}, 有返回Item...    ${array[3]?string}

unset array[3]    此时使用${array[3]+"Item 3 is set"}, 返回空,无效

array=清除第一个元素;unset array 清除数组

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. ArcGIS Engine空间查询功能的实现(QueryFilterClass+SpatialFilterClass)

    地图中包含大量的信息,为了快速地了解所需信息,必须借助为空间数据专门编写的空间查询功能. 空间查询主要有两种类型: 基于属性的查询,也称为属性查询. 基于空间位置的查询,也称为空间查询. 查询类的基本 ...

  2. SpringBoot-Mysql模板多数据源加载

    SpringBoot-Mysql模板多数据源加载 qq交流群: 812321371 微信交流群: MercyYao 简介 在 java 项目里常用到 mysql 多数据源操作.结合 springboo ...

  3. SpringBoot HATEOAS用法简介

    REST风格简介 介绍HATEOAS之前先简单介绍一下REST,REST 是 Representational state transfer 的缩写,翻译过来的意思是表达性状态转换.REST是一种架构 ...

  4. 基于SkyWalking的分布式跟踪系统 - 环境搭建

    前面的几篇文章我们聊了基于Metrics的监控Prometheus,利用Prometheus和Grafana可以全方位监控你的服务器及应用的性能指标,在出现异常时利用Alertmanager告警及时通 ...

  5. 基础安全术语科普(三)——RAT

    什么是RAT? RAT 即 Remote Access Tools (远程管理工具或远程访问工具)的缩写.通俗点说就是木马病毒. RAT 分为两部分——客户端 与 服务端. RAT的工作原理? 服务端 ...

  6. Unity Dropdown

    unity DropDown控件应用很简单 代码如下 frameDpdown.options.Clear(); //Dropdown.OptionData optDataFrame = new Dro ...

  7. Oracle运行脚本:exp,hist 和 err

    上一篇我们讲到:首次使用rman备份数据库时,为了安全起见,我们应将整个数据库exp出来. 显而易见,每次都手敲exp代码是不可取的. ----费时费力还不规范! 为此,我们可以写一个exp脚本,之后 ...

  8. python基础-元组(tuple)及内置方法

    元组-tuple 用途:用于存储多个不同类型的值,但是不能存储可变类型数据 定义方法:用小括号存储数据,数据与数据之间通过逗号分隔,元组中的值不能改变. 注意: 1.定义元组时,如果里面只有一个值,在 ...

  9. 网络安全-主动信息收集篇第二章-二层网络扫描之nmap

    nmap是网络层.传输层最重要的扫描工具之一,可以结合脚本对应用层的扫描和对网络弱点发现. 网络层发现nmap使用: Usage: nmap [Scan Type(s)] [Options] {tar ...

  10. 使用Typescript重构axios(十八)——请求取消功能:总体思路

    0. 系列文章 1.使用Typescript重构axios(一)--写在最前面 2.使用Typescript重构axios(二)--项目起手,跑通流程 3.使用Typescript重构axios(三) ...