文章目录
一、shell函数
1.什么是shell函数
将命令序列按格式写在一起
可方便重复使用命令序列
2.格式
function 函数名{
命令序列
}
或
函数名() {
命令序列
}
3.函数返回值
return表示退出函数并返回一个退出值,脚本中可以用$?变量显示该值使用原则:
1、函数一结束就取返回值,因为$?变量只返回执行的最后一条命令的退出状态码
2、退出状态码必须是0~255,超出时值将为除以256取余
4.函数变量的作用范围
函数在shell脚本中仅在当前shell环境中有效
Shell脚本中变量默认全局有效
将变量限定在函数内部使用local命令
5.递归
函数调用自己本身的函数
6.递归目录
示例:
mkdir -p /root/bin/aa/bb/cc/dd ; touch /root/bin/aa/bb/cc/dd/abc.txt,输出环境变量PATH所包含的所有目录以及其中的子目录和所有不可执行文件
二、数组
1.应用场景
1.应用场景包长度
2.获取数组长度
3.获取元素长度
4.遍历元素
5.元素切片
6.元素替换
7.元素删除
2.定义数组
2.1方法1
数组名=(值0 值1 值2 …)
中间以空格间隔,如果值为符号內型需加单引号或双引号
2.2方法2
数组名= ($列表变量)
2.3方法3
数组名=([n]=值1 …)
以空格间隔,n代表元素的下标,第一元素的下标从0开始
2.4方法4
数组名[n]=值
n代表元素的下标,第一元素的下标从0开始
3.数组字符替换
${数组名[@]/旧字符/新字符}
会替换所有元素上能匹配到的字符但是这是临时替换不会影响原有数组,可通过重新赋值实现替换原有数组
数组名=(${数组名[@]/旧字符/新字符} )
4.删除和追加数组
4.1删除
unset 数组名[n] 删除某一个元素
unset 数组名[*] 删除整个数组
4.2追加
数组名+=(元素1 元素2 ...)
数组名=("${数组名[@]}" 元素1 元素2 ...)
数组名[数组长度]=元素值
数组名[n]=值