一 条件测试
重要: shell的各种'条件结构'和'流程控制'结构要进行各种测试,做各种'逻辑判断',根据'测试结'果执行不同的操作
思考: 何为'真'、何为'假'? -->实质都是通过'$?'来判断'真价'
备注: shell是'没有boolean'类型
实质: 根据'$?'作为判断依据;'0'为真,'非0'为假
注意的是: [] 实际是'test'命令,[[]]是test的'增强版命令'
备注: 如果想通过'cmd' 进行逻辑判断,不要加'[]或者[[]]'
② test
test -f /tmp.oldboy.txt && echo 'succeed' -->'成功为succeed'
test -f /tmp.oldboy.txt || echo 'failed' -->'不成功failed'
逻辑操作符: '&&'、'||'
③ []
备注: []中如果有'变量'尽量'加上双引号'
④ [[]]
备注: 双中括号'[[]]'可以使用'正则'
二 文件测试表达式
先'判断'是否符合要求,才进行'操作处理',避免'程序出错'及无谓的'系统资源'消耗
需求: 判断文件的'类型'
备注: 软连接也是文件,所以要'优先判断'是不是'符号链接文件'
备注: 少了一个'-p' -->'pipe管道文件'
三 字符串测试表达式
'u' -->'过去常用' -->'不加双引号'
if [ u' = u'${str} ];then
echo '字符串为空'
fi
备注: 变量为'空'或'未定义': 长度都为'0'
四 二元比较操作符
① 算术比较运算符
五 逻辑操作符
&& 逻辑的 'AND' 的意思, -a 也是这个意思,两个条件'同时成立',为真
|| 逻辑的 'OR' 的意思, -o 也是这个意思,两个条件'至少一个'成立,为真
六 小结
最佳'实践': 选择'适合自己'的风格,别的能'看懂'即可