shell 数组使用简介
数组简介
bash 只提供一维数组,并且没有限定数组的大小。类似与C语言,数组元素的下标由0开始编号。获取数组中的元素要利用下标。下标可以是整数或算术表达式,其值应大于或等于 0。用户可以使用赋值语句对数组变量赋值。
数组赋值
- 下标赋值
$ students[0]=Jack
$ students[1]=Alex
$ students[2]=Amy
也可以使用declare显式声明一个数组:
$ declare -a 数组名
- 直接赋值
$ students=(Jack Alex Amy)
或
$ declare -a studentds=(Jack Alex Amy)
- 命令赋值
命令的输出格式如下
$ ls
Desktop Downloads Pictures Templates virtualenv
$ arr=($(ls))
- 字典赋值
可以通过declare -A命令声明字典
$ declare -A dict=([key1]=val1 [key2]=val2)
访问数组
创建数组
$ students=(Jack Alex Amy)
- 通过下标访问
$ echo ${students[0]}
Jack
$ echo ${students[1]}
Alex
$ echo ${students[2]}
Amy
- 列出所有元素
$ echo ${students[@]}
Jack Alex Amy
或
$ echo ${students[*]}
Jack Alex Amy
@ 符号与 * 符号均可以列出所有元素
数组的其它操作
- 获取数组长度
$ echo ${#students[@]}
3
- 打印数组下标
$ echo ${!students[@]}
0 1 2
也可以打印字典的key 值
$ declare -A dict=([key1]=val1 [key2]=val2)
$ echo ${!dict[@]}
key2 key1
- 删除数组
$ unset 数组名
shell 数组使用简介的更多相关文章
- 教你使用shell数组
数组的使用,需要掌握 1.对数组进行赋值 2.通过下标访问数组元素 3.循环遍历所有的元素 代码如下: #!/bin/bash a="39" b="5" c=& ...
- 03 . Shell数组和函数
Shell数组 简介 数组中可以存放多个值.Bash Shell 只支持一维数组(不支持多维数组),初始化时不需要定义数组大小(与 PHP 类似). 与大部分编程语言类似,数组元素的下标由0开始. S ...
- Linux Shell 数组
shell 数组一般都是一维数组. 1. 数组的声明 declare -a arr 该命令将声明一个数组arr,实际上不声明也可以直接定义数组. 2. 数组的初始化 arr=(1 2 3):该命令定义 ...
- shell--2.shell数组
shell 数组 (1)定义数组 shell中,用括号表示数组,数组元素用空格分开,定义数组的一般形式 arrt_name=(val1 val2 val3) 或者 arry_name=(val1 va ...
- Linux Shell数组常用操作详解
Linux Shell数组常用操作详解 1数组定义: declare -a 数组名 数组名=(元素1 元素2 元素3 ) declare -a array array=( ) 数组用小括号括起,数组元 ...
- Shell数组例子
Shell数组例子 循环打印数组,并统计数组的个数: [root@slavedb array]# cat a.sh #!/bin/bash array=( freddy freddie tang sh ...
- Shell数组的增删改查
Shell数组的增删改查 shell数组的定义及取值: a=(1 2 3) [root@bogon tmp]# echo ${a[*]} 1 2 3 [root@bogon tmp]# echo $ ...
- linux shell数组
from: http://www.jb51.net/article/34322.htm bash shell只支持一维数组,但参数个数没有限制. 声明一个数组:declare -a array(其实不 ...
- Shell 数组定义与获取
Shell 数组 bash支持一维数组(不支持多维数组),并且没有限定数组的大小. 类似与 C 语言,数组元素的下标由 0 开始编号.获取数组中的元素要利用下标,下标可以是整数或算术表达式,其值应大于 ...
随机推荐
- c# 文件笔记
1.文件属性操作 File类与FileInfo都能实现.静态方法与实例化方法的区别! //use File class Console.WriteLine(File.GetAttributes(fil ...
- C++STL 迭代器
迭代器类别: 输入迭代器(只读迭代器).输出迭代器(只写迭代器).正向迭代器.双向迭代器.随机访问迭代器 逆向遍历 for(vector<int>::reverse_iterator ri ...
- C语言的问题,头文件:keil也许有漏洞
2018-06-15 16:52:03 ------------------------------------------------------------------------------ ...
- 2014年的最后一个程序,却成为了2015年的第一个bug
这个点不睡觉的程序员,要么就是在努力学技术,要么就是代码出bug了.而我,是后者.呵呵,2015了,觉还是要睡的
- mysql主从复制Error1205
主从架构.今天发现从库SQL线程报错,主从复制停止了.查看错误发现: Last_SQL_Errno: 1205 Last_SQL_Error: Slave SQL thread ...
- crontab条目包含%号问题
crontab条目中包含%号,最常见的取时间,如:date +%d, 对%需要使用\进行转义,否则不能按预期执行,正确做法为: * * * * * echo "`date +\%d`&quo ...
- MIT Molecular Biology 笔记5 转录机制
视频 https://www.bilibili.com/video/av7973580?from=search&seid=16993146754254492690 教材 Molecular ...
- (多重背包)hdu--2191--悼念512汶川大地震遇难同胞——珍惜现在,感恩生活
Problem Description 急!灾区的食物依然短缺!为了挽救灾区同胞的生命,心系灾区同胞的你准备自己采购一些粮食支援灾区,现在假设你一共有资金n元,而市场有m种大米,每种大米都是袋装产品, ...
- (动态规划)Max Sum Plus Plus--hdu--1024
http://acm.hdu.edu.cn/showproblem.php?pid=1024 Max Sum Plus Plus Time Limit: 2000/1000 MS (Java/Othe ...
- numpy和pandas和matplotlib用法
numpy result = [ [0, 10, 20, 30, 40], [10, 23, 33, 43, 53], [20, 83, 23, 55, 33], [30, 93, 44, 22, 5 ...