shell数组与高级变量的使用
一、数组
1.基于索引查找数组
①定义数组:数组名=(元素1 元素2 ... 元素n)
②根据索引下标查找元素,下标从0开始,0代表第1个元素,以此类推:echo ${数组名[元素下标]}
③获取所有元素:echo ${数组名[*]}
④获取指定范围的元素:echo ${数组名[@]:开始元素下标:结束元素下标}
2.定制索引数组
①声明索引数组:declare -a 数组名
②插入元素:数组名=(元素1 元素2 ... 元素n)
③查看索引数组内容:declare -a | grep 数组名
3.定制关联数组
①声明关联数组:declare -A 数组名
②插入元素:数组名=([数组元素1]="数据1" [数组元素2]="数据2" ... [数组元素n]="数据n")
③查看数组:declare -A | grep 数组名
例:
定义1个普通数组:score=(yuwen shuxue yingyu)
定义1个关联数组:declare -A score1
往score1插入数据:score1=([yuwen]="88" [shuxue]="90" [yingyu]="100")
二、字符串处理
1.字符串计数
${#file} 获取字符串的长度
2.字符串截取
语法为${变量:开始字符:取多少个字符}
${file:0:5} 从0开始【第1个字符】,截取5个字符
${file:5:5} 从5开始【第6个字符】,截取5个字符
${file::5} 从0开始【第1个字符】,截取5个字符
${file:0-6:3} 从倒数第6个字符开始,截取之后的3个字符
${file: -4} 返回字符串最后四个字符,-前面是"空格"
三、变量
1.本地变量
①释义:在当前系统的某个环境下才能生效的变量,作用范围小。主要分为两种,普通变量,即自定义变量名和变量值;命令变量,即自定义变量名,而变量值是通过一条命令获取的
②定义语法
变量名=变量值,变量值必须是一个整体,中间没有特殊字符"="前后不能有空格
变量名='变量值',原字符输出,我看到的内容,我就输出什么内容
变量名="变量值",如果变量值范围内,有可以解析的变量A,那么首先解析变量A,将A的结果和其他内容组合成一个整体,重新赋值给变量B
变量名=$(命令),用于将命令传递给变量
2.全局变量
①释义:在当前系统的所有环境下都能生效的变量
②定义语法:export 变量=值
③查看全局变量:env
3.内置变量
①释义:bash 内部已经做好的环境变量,我们可以直接去用
②使用方法
$0 #获取当前执行的shell脚本文件名
$n #获取当前执行的shell脚本的第n个参数值,n=1..9,当n为0时表示脚本的文件名,如果n大于9就要用大括号括起来${10}
$# #获取当前shell命令行中参数的总个数
$? #获取执行上一个指令的返回值(0为成功,非0为失败)
浙公网安备 33010602011771号