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为失败)
posted @ 2025-09-06 20:01  ITZhong  阅读(24)  评论(0)    收藏  举报