条件测试语句:
test:条件测试命令(搭配 echo $? 使用)
格式:
1.test 条件测试的表达式
test -x 123.txt
2.[ 条件测试的表达式 ]
[ -x 123.txt ]:括号里面开头和结尾都要有空格,不然会报错
3.[[ 条件测试的表达式 ]]
单括号和双中括号都是条件测试的语句但是双中括号,功能更强大,可以直接引用变量,不需要加引号,不会出现歧义,支持正则表达式
注意:使用逻辑测试时,&&和||可以加在双括号中间,-a和-o只能使用单中括号
条件测试:
-e:测试目录或者文件是否存在
-f:测试文件是否存在
-d:测试目录是否存在
-r:测试当前用户是否有读权限
-w:测试当前用户是否有写权限
-x:测试当前用户是否有执行权限
只能整数比较的表达式:
-eq:等于
-ne:不等于
-gt:大于
-ge:大于等于
-lt:小于
-le:小于等于
以上英文格式的整数比较表达式,只能用于比较整数
既可以字符串比较也可以整数比较的表达式:
==:等于
!=:不等于
<:小于
.>:大于
<=:小于等于
.>=:大于等于
逻辑测试:
-a或&&:逻辑且,前后条件都要满足
-o或||:逻辑或,前后条件满足一个既可
直接应用变量时最好用引号" "引起来;特殊符号要慎用。
if语句:
单分支结构、多分支结构和嵌套结构:
单分支:if-then-fi
输入两个数判断他们的大小,当第一个数字比第二个数字大时输出“ok”
单分支只能处理一种情况,当我们还有其他情况时就要采用多分支结构:
双分支:if-then-else-fi
输入一个ip地址看看能否ping通该地址,ping通则存放在hosts.txt文件中,反之无法ping通则提示 “地址is offline“。
此处的&>/dev/null表示将信息丢入黑洞文件中
多分支:if-then-elif-then-else-fi
输入性别,男生进入男生组,女生进入女生组,输入不为男女提示错误:
case语句:
结构:
例题:
输入你的成绩,显示成绩为优秀、一般或者不及格: