• 默认从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. 算法---区间K大数查找 Java 蓝桥杯ALGO-1

    import java.util.Arrays; import java.util.Scanner; public class Main { public static void main(Strin ...

  2. PowerShell攻击:nishang

    nishanhg 下载地址:https://github.com/samratashok/nishing   1.简介 nishang的使用是要在PowerShell 3.0以上的环境中才可以正常使用 ...

  3. 020 - FreeRTOS学习路线总结

    零.为什么写? 在H7-tools预售群里,有位朋友提出如何学习FreeRTOS这类的问题,便由此总结下自己的学习路线.最近又打算接触RTT,和FreeRTOS做个对比. 文章分两步来讲,学习路线和学 ...

  4. XML利用接口显示并导入到数据库

    //控制器代码 /// <summary> /// 页面 /// </summary> /// <returns></returns> public A ...

  5. Kafka集群的安装和部署

    一.Kafka的下载与解压 http://kafka.apache.org/downloads.html下载kafka_2.11-1.1.1.tgz.gz并解压到/home/jun下 [jun@mas ...

  6. Text 尺寸获取

    获取text在当前文本内容下应该尺寸: 宽度:text.preferredWidth 高度:text.preferredHeight

  7. vue事件

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  8. QlikSense主题开发

    // 主题是qliksense 2018年2月版提出,4月版正式实施,其实就是去修改sense默认的.json文件和.css文件 { // 定义自定义主题是否从默认主题(Sense Classic)继 ...

  9. fenby C语言 P15

    while(条件表达式){循环体} #include <stdio.h> int main(){ int i=1,sum=0; while(i<6) { sum=sum+i*3; i ...

  10. spring cloud 调用接口间歇性返回http 500 - Internal Server Error的错误

    查找了各种资料都没找到解决办法,token失效,网络问题,接口服务问题,基础服务问题,都考虑过,但是没能解决,偶尔发现服务器网络配置中存在一个virbr0虚拟网卡,问了下了网管,删除这个对服务并没有影 ...