• 默认从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. ArrayList源码解析(二)

    欢迎转载,转载烦请注明出处,谢谢. https://www.cnblogs.com/sx-wuyj/p/11177257.html 自己学习ArrayList源码的一些心得记录. 继续上一篇,Arra ...

  2. ESP8266开发之旅 基础篇④ ESP8266与EEPROM

    授人以鱼不如授人以渔,目的不是为了教会你具体项目开发,而是学会学习的能力.希望大家分享给你周边需要的朋友或者同学,说不定大神成长之路有博哥的奠基石... QQ技术互动交流群:ESP8266&3 ...

  3. 基于redis解决session分布式一致性问题

    1.session是什么 当用户在前端发起请求时,服务器会为当前用户建立一个session,服务器将sessionId回写给客户端,只要用户浏览器不关闭,再次请求服务器时,将sessionId传给服务 ...

  4. SpringBoot整合MybatisPlus3.X之SQL执行分析插件(十四)

    pom.xml <dependencies> <dependency> <groupId>org.springframework.boot</groupId& ...

  5. 被低估的.NET(下)-2019 中国.NET 开发者峰会

    Time flies!不知不觉距离上篇<被低估的.net(上) - 微软MonkeyFest 2018广州分享会活动回顾>和中篇<被低估的.net(中) - 广州.net俱乐部201 ...

  6. ubuntu 12 install redis

    ubuntu 12 install redis 今天开始写数据server部分,大家初步的方案是用redis+mysql 所以要安装,下面记录安装的基本过程,留做后续参考 unbuntu 12 已经支 ...

  7. MinIO 参数解析与限制

    MinIO 参数解析与限制 MinIO server 在默认情况下会将所有配置信息存到 ${HOME}/.minio/config.json 文件中. 以下部分提供每个字段的详细说明以及如何自定义它们 ...

  8. 程序员学点xx 之 Redis

    程序员学点xx 之 Redis 概述 其实程序员也要和操作系统打交道, 比如最常见的,部署自己电脑上的开发环境. 当然有时某些牛人, 觉得运维或基础部门的同事不够给力, 亲自上手部署服务器或线上环境, ...

  9. python学习之【第二篇】:Python中的数字及其所具有的方法

    1.前言 Python 数字(number)数据类型用于存储数值.数据类型是不允许改变的,这就意味着如果改变数字数据类型的值,将重新分配内存空间. 2.创建数字对象 以下实例在变量赋值时 Number ...

  10. MongoDB自学------(1)MongoDB4.0安装

    一.环境 操作系统 安装包 安装方式 Ubuntu18.04 mongodb4.0 apt安装 Ubuntu18.04 mongodb4.0 docker安装 二.apt安装 sudo apt-key ...