bash之数组】的更多相关文章

使用bash关联数组统计单词 从bash 4开始支持关联数组,使用前需要声明,即 declare -A map map[key1]=value1 map[key2]=value2 map=([key1]=value1 [key2]=value2) # 获取keys keys=${!map[@]} # 获取values values=${map[@]} 利用关联数组,很容易实现单词统计,源码文件wordCount.sh #!/bin/bash if [[ $# -lt 1 ]] then echo…
Bash 2.x提供了创建一维数组的能力. 有多种方法创建,用内建命令declare -a或直接数组元素赋值. 向数组赋值时,如果不指定下标,下标自动从0开始,每次增加1. 数组的尺寸没有限制,下标也不必是一定顺序的数字. 获取数组元素的语法是:${arrayname[index]} 获取所有数组元素列表的语法是:${arrayname[*]} 获取数组元素数目的语法是:${#arrayname[*]} $declare -a nums=(45 33 100 65) $echo ${nums[0…
Bash 提供了两种类型的数组,分别是索引数组(indexed array)和关联数组(associative array).本文主要介绍索引数组的基本用法. 索引数组的基本特点 Bash 提供的数组都是一维数组.任何变量都可以用作索引数组.通过 declare 关键字可以显式的声明一个索引数组.数组的大小是不受限制的.索引数组的元素的索引不必是连续的.通过从零开始的整数引用数组元素.除非另外注明,索引数组必须使用非负的整数索引元素. 自动创建索引数组 通过赋值语句可以隐式的创建索引数组: $…
Bash 提供索引和联想的一维数组变量.可用作任何变量 索引的数组 :内置的声明将显式声明数组.有没有最大限制 一个数组,也没有要求成员将索引或连续分配的大小.索引的数组 引用使用 (包括算术表达式) 的整数和是从零开始 :关联数组 使用任意字符串引用. 如果任何变量分配给使用语法名称 [sub-自动创建索引的数组 脚本] = 值.下标被当作算术表达式的计算结果必须为数字 大于或等于零.若要显式声明索引的数组,使用声明-名称 (见壳 内置下面的命令).声明-[下标] 的名称也可以接受 :下标将被…
本文为原创博文,转发请注明原创链接:https://www.cnblogs.com/dingbj/p/10090583.html  数组的概念就不多说了,大家都懂! shell数组分为索引数组和关联数组,今天只说普通的索引数组. 定义数组 像很多脚本语言一样,shell变量不区分类型,对于普通数组,可申明也可以不申明: 如果习惯使用声明,就使用declare 命令声明 例如:declare -a myarray 数组初始化:在赋值语句的等号右侧,紧挨着用一对括号表示数组,数组中元素之间使用"空格…
复杂的数据结构和计算不是 bash 的特长.但它的确至少提供了数组和算术运算. 1.算术运算 所有的 bash 变量的值都是字符串,所以 bash 在赋值的时候并不区分数字 1 和 字符串 "1" .不同之处在于如何使用变量.下面几行代码展示出了其中的差异: #!/bin/bash a= b=$(()) c=$a+$b d=$(($a+$b)) echo "$a + $b = $c \t(plus sign as string literal)" echo &quo…
摘要: 你会学到一种原创的同时循环两个列表的方法.类似于Python或者Haskell的zip函数,非常简洁直观,效果如下: $ paste <( ) <( ) | while read host ip; do echo "vm$host: 172.16.116.$ip"; done vm1: 172.16.116.129 vm2: 172.16.116.130 vm3: 172.16.116.131 vm4: 172.16.116.132 vm5: 172.16.116.…
假设我们定义了一个变量为: file=/dir1/dir2/dir3/my.file.txt 我们可以用 ${ } 分别替换获得不同的值: ${file#*/}:拿掉第一条 / 及其左边的字串:dir1/dir2/dir3/my.file.txt ${file##*/}:拿掉最后一条 / 及其左边的字串:my.file.txt ${file#*.}:拿掉第一个 . 及其左边的字串:file.txt ${file##*.}:拿掉最后一个 . 及其左边的字串:txt ${file%/*}:拿掉最后一…
Linux数组array基础[${a[*]}和$a的区别] Bash中,数组变量的赋值有两种方法: (1) name = (value1 ... valuen) 此时下标从0开始 (2) name[index] = value 下面以一个简单的脚本来说明,脚本内容如下: #!/bin/bash #定义数组 A=(a b c d e f ) #把数组按字符串显示输出 echo ${A[@]} #数组的长度表示${#A[*]} len=${#A[*]} echo ${#A[*]} #屏幕显示: #改…
一.实践证明,在AIX上用的是ksh,linux上是bash sh或bsh,全名是bourne shell.它最早出现,是标准shell.后两者都兼容它. ksh和bash后续加入了历史记录,交互特性,数组,等新功能. ksh在unix上使用较多.比如hpux,AIX bash在linux上使用较多. 也可以用这些做命令跳到另一个shell,看个人习惯用哪个: jimmy-cao@jimmycao-ThinkPad-Edge:~$ sh $ bash jimmy-cao@jimmycao-Thi…