shell条件测试
格式1:test 条件表达式
格式2:[ 条件表达式 ]
格式3:[[ 条件表达式 ]]
文件测试—操作符 文件或目录
test
- -e dir|file判断文件或目录是否存在
- -d dir测试是否是目录
- -f file测试是否是文件
- -r file测试当前用户对该文件是否有读权限
条件表达式
if [ 表达式 ];then
执行语句
fi
模式匹配 case
case 变量 in
模式1)
命令序列1
;;
模式2)
命令序列2
;;
模式3)
命令序列3
;;
*)
无匹配后命令序列
esac
流程控制 if
- 单分支结构
if 条件测试
then 命令序列
fi
- 双分支结构
if 条件测试
then 命令序列
else 命令序列
fi
- 多分支结构
if 条件测试
then 命令序列
elif 条件测试2
then 命令序列
...
fi
shell循环:for
循环次数是固定的
for 变量 [ in 取值列表 ]
do
循环体
done
shell循环:while until
循环次数不一定是固定的
while 条件测试
do
循环体
done
当条件测试成立(条件测试为真),执行循环体
until 条件测试
do
循环体
done
当条件测试成立(条件测试为假),执行循环体
shell数组变量
普通数组:只能使用整数作为数组索引
关联数组:可以使用字符串作为数组索引
一、普通数组
定义数组:
- 方法一
- 数组名[下标 ]=变量值
- array[0]=people
- array[1]=student
- array[2]=teacher
- 方法二
- 一次性赋多个值
- arrary=(people,student,teacher)
查看数组:
- declre -a
访问数组元素:
- echo ${array[索引]}
遍历数组:
- 通过数组元素的索引进行遍历
二、关联数组
定义关联数组:
- 声明关联数组遍历
- declaer -A arrary
- 方法一:一次赋一个值
- 数组名[索引]=变量值
- arrary[people]=student
- arrary[color]=yellow
- 方法二:一次赋多个值
-
arrary=([people]=student [color]=yellow)
查看数组: -
declre -A
访问数组元素: -
echo ${array[索引]}
遍历数组: -
通过数组元素的索引进行遍历
-
补充
- 符号
- ( )子Shell中运行
- ( ( ) )数值比较、运算
- $( )命令替换
- $( ( ) )整数运算
- { }集合
- $ { }变量的引用
- [ ]条件测试
- [ [ ] ] 条件测试,支持正则表达式
- $[ ]整数运算
- 执行脚本
- ./文件.sh—需要执行权限—在子shell中执行
- bash 文件.sh—不需要执行权限—在子shell中执行
- . 文件.sh—不需要执行权限—在当前shell中执行
- source 文件.sh—不需要执行权限—在当前shell中执行
- 调试脚本
- sh -n 文件.sh 仅调试syntax error
- sh -vx 文件.sh 以调试的方式执行,查询整个执行过程
文章的最后给大家推荐一个公众号
小辅导-互联网开发者、多年一线程序开发经验
不定期分享各类资源
https://mp.weixin.qq.com/s/GqyiuwFOFJ3MkUJhwuA3_Q