SHELL脚本攻略(学习笔记)--1.7 数组

bash里有两种数组:普通数组和关联数组。普通数组只能使用整型数值作为数组索引,关联数组可以使用字符串作为索引。

1.7.1 普通数组

定义数组的方式一:

[[email protected] tmp]# array_test=(1 2 3 4)

它们分别存储在索引位0-3的位置上,是array_test[0]到array_test[3]对应的值。

[[email protected] tmp]# echo ${array_test[2]}  ç数组的引用方式:${array_name[index]}

3

注意数组中定义是使用空格作为分隔符定义在括号内,而不是逗号。如果使用逗号,则它们将作为一个整体,也就是数组索引0的值。

如果使用逗号,则:

[[email protected] tmp]# array_test=(1,2,3,4)

[[email protected] tmp]# echo ${array_test[0]}   ç整体结果作为索引0位的值。

1,2,3,4

定义数组的方式二:可以自定义索引位。

[[email protected] tmp]# array_test[1]=1

[[email protected] tmp]# array_test[2]=2

[[email protected] tmp]# array_test[3]=3

[[email protected] tmp]# array_test[4]=4

[[email protected] tmp]# echo ${array_test[*]}

1,2,3,4 1 2 3 4

打印数组所有值。

[[email protected] tmp]# echo ${array_test[*]}

1,2,3,4 1 2 3 4

或者:

[[email protected] tmp]# echo ${array_test[@]}

1,2,3,4 1 2 3 4

查看数组索引号。

[[email protected] tmp]# echo ${!array_test[*]}

0 1 2 3 4

或者

[[email protected] tmp]# echo ${!array_test[@]}

0 1 2 3 4

1.7.2 统计数组长度

[[email protected] tmp]# echo ${#array_test[*]}

5

[[email protected] tmp]# echo ${#array_test[@]}

5

1.7.3 关联数组

关联数组支持字符串作为数组索引。使用关联数组必须先使用declare -A声明它。

[[email protected] tmp]# declare -A array_dep   ç声明之后就可以给其赋值了

[[email protected] tmp]# array_dep=([name1]=longshuai [name2]=xiaofang)

[[email protected] tmp]# echo ${array_dep[name1]}

longshuai

也可以分开赋值。

[[email protected] tmp]# array_dep[name3]=zhangsan

[[email protected] tmp]# array_dep[name4]=lisi

[[email protected] tmp]# echo ${array_dep[name4]}

lisi

查看数组所有值。

[[email protected] tmp]# echo ${array_dep[*]}

zhangsan xiaofang longshuai lisi   ç可以看到是字母倒序排列的

或者:

[[email protected] tmp]# echo ${array_dep[@]}

zhangsan xiaofang longshuai lisi   ç可以看到是字母倒序排列的

查看数组索引号。

[[email protected] tmp]# echo ${!array_dep[@]}   ç对应字母倒序排列

name3 name2 name1 name4

或者:

[[email protected] tmp]# echo ${!array_dep[*]}

name3 name2 name1 name4

统计数组长度。

[[email protected] tmp]# echo ${#array_dep[*]}

4

或者:

[[email protected] tmp]# echo ${#array_dep[@]}

4

时间: 2024-10-13 11:32:04

SHELL脚本攻略(学习笔记)--1.7 数组的相关文章

SHELL脚本攻略(学习笔记)--1.7 expr命令全解

expr命令可以实现数值运算.数值或字符串比较.字符串匹配.字符串提取.字符串长度计算等功能.它还具有几个特殊功能,判断变量或参数是否为整数.是否为空.是否为0等. 先看expr命令的info文档info coreutils 'expr invocation'的翻译. 16.4.1 字符串表达式 ------------------------- 'expr'支持模式匹配和字符串操作.字符串表达式的优先级高于数值表达式和 逻辑关系表达式. 'STRING : REGEX' 执行模式匹配.两端参数

SHELL脚本攻略(学习笔记)--1.6 数学运算和bc命令

本文目录: 1.6.1 基本整数运算 1.6.2 bc命令高级算术运算 使用let.$(())或$[]进行基本的整数运算,使用bc进行高级的运算,包括小数运算.其中expr命令也能进行整数运算,还能判断参数是否为整数,具体用法见expr命令全解. 1.6.1 基本整数运算 [[email protected] tmp]# str=10 [[email protected] tmp]# let str=str+6 # 等价于let str+=6 [[email protected] tmp]# l

《Linux Shell脚本攻略》 笔记 第一章:Shell起步基础

<Linux Shell脚本攻略> 笔记 第一章:Shell起步基础 1.变量:在bash中,每一个变量的值都是字符串.无论你给变量赋值时,有没有使用引号,值都会以字符串的形式存储. 2.var=value; //赋值操作 var = value: //相等操作 3.获取字符串的长度 [[email protected] ~]$ var=yang [[email protected] ~]$ length=${#var} [[email protected] ~]$ echo $length

《Linux Shell脚本攻略》 笔记 第二章:常用命令

<Linux Shell脚本攻略> 笔记 第二章:常用命令 1.cat cat -s //多个空白行压缩成一个 cat *.txt | tr -s '\n'   //移除空白行 cat -n //加行号 2.find 沿着文件层次结构向下遍历,匹配符合条件的文件,并执行相应的操作. eg: find ./ ! -name "*.txt" -print [[email protected] program_test]# find ./  -type f -name "

《Linux Shell脚本攻略》 笔记 第三章:文件操作

<Linux Shell脚本攻略> 笔记 第三章:文件操作 1.生产任意大小的文件 [[email protected] dd_test]# [[email protected] dd_test]# dd if=/dev/zero of=junk.data bs=1k count=10 10+0 records in 10+0 records out 10240 bytes (10 kB) copied, 0.00137023 s, 7.5 MB/s 2.文件系统相关测试 [ -f $file

《Linux Shell脚本攻略》 笔记 第四章:高效文本处理

<Linux Shell脚本攻略> 笔记 第四章:高效文本处理 1.IP地址的正则表达式: [0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3} 2.grep用法 //在多级目录中对文本进行递归检索 [[email protected] program_test]# grep "yang" ./ -Rn ./test.txt:6:laoyang ./right.txt:1:1 yang man //忽略大小写匹配 [[email pr

《Linux Shell脚本攻略》 笔记 第六章:打包压缩

<Linux Shell脚本攻略> 笔记 第六章:打包压缩 //1.打包.解包 [[email protected] program_test]# tar -cf output.tar 11.txt 22.txt 33.txt [[email protected] program_test]# tar -xf output.tar -C ./tar-file/  //-C指定要提取到哪个路径? //列举出归档文件中的内容 [[email protected] program_test]# ta

Linux Shell 脚本攻略阅读笔记第1章 小试牛刀

一.简介 1.Bash(Bourne Again Shell),目前大多数GNU/Linux系统默认的shell环境. 命令都是在shell终端中输入并执行.打开终端后,提示符的形式:[email protected]$       或    [email protected] #     ($表示普通用户,#表示管理员用户root) 2.shell脚本是一个以#!(shebang)起始的文本文件,如下:   #!/bin/bash shebang是一个文本行,其中#!位于解释器路径之前./bi

LINUX SHELL脚本攻略笔记[速查]

Linux Shell脚本攻略笔记[速查] 资源 shell script run shell script echo printf 环境变量和变量 pgrep shell数学运算 命令状态 文件描述符和重定向 cat 数组和关联数组 alias date 调试脚本 函数和参数 管道 读取命令输出 read 字段分隔符和迭代器 循环 比较和测试 find xargs tr md5sum sha1sum 对目录进行校验 sort uniq tempfile split bash变量匹配切分 exp

Linux Shell脚本攻略(1.12)

1.12 函数和参数 和其他脚本语言一样,Bash同样支持函数,并且可以传递参数. 1.12.1 函数定义和传参 #!/bin/bash function fname() #也可以用fname()代替 { echo $1,$2; #访问参数1和参数2 echo "[email protected]"; #以列表的方式一次性打印所有参数 echo "$*"; #类似于[email protected],但是参数被作为单个实体 return 0; #返回值 } fnam