1.Test 条件测试的表达式:test -e 123.txt
2.条件测试表达式: [ -e 123.txt ]
Test常用的一些操作符
- -e 测试目录或者文件是否存在
- -d 测试是否为目录
- -f 测试是否为文件
- -r 测试当前用户是否具有 读 权限
- -w测试当前用户是否具有 写 权限
- -x 测试当前用户是否具有 执行 权限
比较字符串
比较符号
-eq:等于
-ne:不等于
-gt:大于
-lt:小于
-le:小于等于
-ge:大于等于
这些只能用于比较整数,不能用于字符串 ,
==:可以比较字符也可以比较整数,
!=:不等于 ,
> 大于 ,
< 小于 ,
<=小于等于,
>=大于等于
[] :写在括号中
[[]]:双中括号功能更强大,语法和单重括号一至,避免歧义,支持正则表达式
有个特殊 -z 检测字符串是否为空
逻辑测试
且:条件测试的条件都要为真,: -a , &&
或:有一边满足即可 :-o , ||
!:逻辑否
格式:[ 表达式1 ] 操作符 [表达式2] , [[ $a -ne 1 || $a -gt 6 ]]双中括号只能用于&& || 表示逻辑且或者逻辑或,
[ $a -ne 1 -o $a -gt 6 ],单中括号只能用 -a -o
if语句的固定格式
单分支
If [ ]
Then
Echo “满足if条件执行的语句”
Else
Echo “不满足if条件执行的语句”
Fi
举例 :校验数字是否为奇数或偶数,可以使用输入的数除2取余,取余若等于0为偶数,若不等于0为奇数
多分支结构
case语句的固定格式
case 变量 in
模式1)
执行的操作1
;;
模式2)
执行的操作2
;;
模式3)
执行的操作3
;;
*)
非定意的其他操作
esac
举例
要求有一个ip地址,这需要用户你手动输入,然后判断,ping通要保留到/opt/hosts.txt,ping不通,则打印结果,ip地址不可用。
read -p "192.168.233.24" ping
ping -c 5 192.168.233.24
if [[ $? -eq 0 ]]
then
echo "通"
else
echo "不通"
fi