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 开始编号.获取数组中的元素要利用下标,下标可以是整数或算术表达式,其值应大于 ...
随机推荐
- 添加网络ADB的方法(含以太网和无线)
将下面代码添加至packages/apps/Settings/src/com/android/settings/DevelopmentSettings.java 结合之前的添加wifi adb的博客 ...
- HDMI之(AVI)Auxiliary Video Information InfoFrame
这是HDMI协议中关于AVI接口的信息 AVI InfoFrame在H14b中进行了定义.从HDMI 2.0 10.1 Use of the AVI InfoFrame in This Spe ...
- Chapter15 Principles of Metabolic Regulation
15.1 调节代谢的通路 (1)细胞和有机体维持着动态稳定 调节作用的基因多 2500个 12% 激酶占比多 300个 一个通路受到多方调节 (2)酶的数量和催化活性 可以被调节 反应物的调控 糖酵解 ...
- MIT Molecular Biology 笔记3 DNA同源重组
视频 https://www.bilibili.com/video/av7973580?from=search&seid=16993146754254492690 教材 Molecular ...
- 使用 vs.php 调试PHP相关问题
1. 使用mysql_connect()方法时报错"Call to undefined function mysql_connect()" 这是由于在php.ini没有启用mysq ...
- STM32F10X-定时器/计数器
1.STM32F10X的计数器与定时器关系 当时钟连接外脉冲时是计数器:当时钟采用系统内部时钟时是定时器! 2.STM32F10X定时器的时钟源 STM32F10X定时器的时钟不是直接来至于APB1和 ...
- day33(sql)
操作数据库 增: create database 数据库名 character set utf8 删 drop database 数据库名称 改 alter database 数据库名称 charac ...
- shell脚本-成长之路
我对shell脚本的认识,除了执行过同事写的shell 脚本外,其他一无所知,为了让自己强大,我决定自己研究shell脚本,也许在你看来很简答,没必要说这么多废话,但是我希望在我的技术log里记录下来 ...
- Ajax_Json
前台代码: <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="AjaxJson ...
- appcompat_v7报错
appcompat_v7如果报找不到资源,value-xx出错.一般就是因为appcompat_v7的版本问题,直接修改api版本至appcompat_v7对应value的最高版本. 我的v7包最高对 ...