判断语句
if语句格式: 可以嵌套使用
if [ ] then
elif [ ] then
else
fi
判断语句:
-gt //是否大于
-ge //是否大于等于
-eq //是否等于
-a //判断文件是否存在
= //是否等于
> //ascii码是否大于ascii码 若 两边数值没有 空格 则为 赋值
< //是否小于
!= //是否不等于
case expression in
判断式1 )
commands1 ;;
判断式2 )
commands2 ;;
...
判断式N )
commandsN ;;
* )
default_commands ;;
esac
数组
数组的定义
数组名=(value1 value2 value3) 值 需使用空格隔开
数组名=([0]=value [1]=value [2]=value ...)
列表名="value0 value1 value2 ..."
数组名=($列表名)
数组名[0]="value"
数组名[1]="value"
数组名[2]="value"
值 添加 引号可引入 字符值 “”可引用变量 ‘’
数组的使用
${数组名[1]} 显示下标为 1 的值
${数组名[@]} @ 与 * 代表数组中所有的内容
${#数组名[@]} 显示下标个数
${数组名[@或*]:起始位置:长度} 从起始位输出指定长度的值
echo ${数组名[@或*]/查找字符/替换字符} 输出时候替换指定内容
替换数组内容 需重新定义 数值
删除数组
unset 数组名 删除 指定数组
unset 数组名[下标] 删除 数组内指定数值
追加 数值
array_name[index]=value
array_name[${#array_name[@]}]=value
array_name=("${array_name[@]}" value1 ... valueN)
双引号不能省略,否则,当数组array_name中存在包含空格的元素时会按空格将元素拆分成多个
不能将“@”替换为“”,如果替换为“”,不加双引号时与“@”的表现一致,加双引号时,会将数组array_name中的所有元素作为一个元素添加到数组中
array_name+=(value1 value2 value3 value4 ... valueN)
循环
格式
for 变量名 in expression ;
do
done
while [ expression ]
do
done
循环退出
exit //结束循环
continue //结束某次循环
break //跳出当前循环层
函数
格式
function 函数名 {
命令序列
}
函数名() {
命令序列
}
function 函数名 (){
命令序列
}
使用函数名 以此调用 函数
查询函数列表
declare -F //查看当前已定义的函数名
declare -f //查看当前已定义的函数定义
declare -f func_name //查看指定当前已定义的函数名
declare -F func_name //查看当前已定义的函数名定义
删除函数
unset 函数名