shell——数组
- 默认从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——数组的更多相关文章
- 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 $ ...
- 教你使用shell数组
数组的使用,需要掌握 1.对数组进行赋值 2.通过下标访问数组元素 3.循环遍历所有的元素 代码如下: #!/bin/bash a="39" b="5" c=& ...
- linux shell数组
from: http://www.jb51.net/article/34322.htm bash shell只支持一维数组,但参数个数没有限制. 声明一个数组:declare -a array(其实不 ...
- Shell 数组定义与获取
Shell 数组 bash支持一维数组(不支持多维数组),并且没有限定数组的大小. 类似与 C 语言,数组元素的下标由 0 开始编号.获取数组中的元素要利用下标,下标可以是整数或算术表达式,其值应大于 ...
- 【Linux】shell数组
一.概念 shell数组就是一个元素集合,它把有限个元素用一个名字来命名,然后用编号对他们分区.这个名字称为数组名,用于区分不同内容的编号称为数组的下标. 二.shell数组的定义与增删改查 1.sh ...
- shell 数组,双层循环打印变量
双层循环,打印循环执行次数. 特别注意 ,shell 脚本赋值时 '=' 两侧不能有空格,否则报错,shell command not found 但在if 语句中需要有: STR1="ab ...
随机推荐
- 5分钟读懂Linux权限管理
权限管理: 本文用于初学者对Linux文件系统权限的快速了解!! 进程安全上下文: 进程对文件的访问权限应用模型: 进程的属主与文件的属主是否相同:如果相同,则应用属主权限: 否 ...
- python里怎么查看数据类型
python里怎么查看数据类型? python里可以通过type()函数来查看数据类型. Python 内置函数 Python 内置函数 Python type() 函数如果你只有第一个参数则返回对象 ...
- i春秋DMZ大型靶场实验(二)提权漏洞
拿到靶场 直接进行扫描 爆破路径 发现 phpinfo, phpmyadmin 更具phpinfo 获取跟路径 也可以通过 输入错路径爆出绝对路径 phpmyamin 弱口令登录 root,r ...
- 玩转OneNET物联网平台之HTTP服务① —— 模拟上传温度(TcpClient)
授人以鱼不如授人以渔,目的不是为了教会你具体项目开发,而是学会学习的能力.希望大家分享给你周边需要的朋友或者同学,说不定大神成长之路有博哥的奠基石... QQ技术互动交流群:ESP8266&3 ...
- restapi(8)- restapi-sql:用户自主的服务
学习函数式编程初衷是看到自己熟悉的oop编程语言和sql数据库在现代商业社会中前景暗淡,准备完全放弃windows技术栈转到分布式大数据技术领域的.但是在现实中理想总是不如人意,本来想在一个规模较小的 ...
- 安装配置 Android Studio
概述 Android Studio 本身应该是开箱即用的,但是由于 dl.google.com 访问太慢,导致了这样那样的问题,因此我们只需要改一下 hosts 就行了 具体步骤 在Ping检测网站查 ...
- webpack 4 移除 CommonsChunkPlugin,取而代之的是两个新的配置项(optimization.splitChunks 和 optimization.runtimeChunk
默认方式 webpack模式模式现在已经做了一些通用性优化,适用于多数使用者. 需要注意的是:默认模式只影响按需(on-demand)加载的代码块(chunk),因为改变初始代码块会影响声明在HTML ...
- vue 动态数据绑定
动态数据绑定(一) 我的github iSAM2016 实现的步骤: 1.监听对象属性的读取与变化 Object.defineProperty() 方法会直接在对象上定义一个新的的属性,或者已经存在的 ...
- Core3.0的 安装与坑坑坑!!!
Core3的 SDK下载地址是:https://dotnet.microsoft.com/download/dotnet-core/3.0 ! 不要下载preview8!!!,请先下载 previe ...
- itextsharp生成pdf
itextsharp在ios中可用,亲测 (一)生成文档 Document document = , , , ), , , , ); //Document document = new Documen ...