条件测试操作
test命令
测试表达式是否成立,若不成立返回0,否则返回其他数值
格式一:test 条件表达式
格式二:[ 条件表达式 ]
文件测试
格式:[ 操作符 文件或目录 ]
常用的操作符:
-e:测试目录或文件是否存在(Exist)。
-d:测试是否为目录(Directory)。
-f:测试是否为文件(File)。
-r:测试当前用户是否有权限读取(Read)。
-w:测试当前用户是否有权限写入(Write)。
-x:测试是否设置有可执行(Excute)权限。
整数值比较
格式:[ 整数变量1 操作符 整数变量2 ]
常用的操作符:
-eq:等于 ==
-ne:不等于 !=
-gt:大于 >
-lt:小于 <
-le:小于等于 <=
-ge:大于等于 >=
字符串比较
格式1:
[ 字符串1 = 字符串2 ] 或 [ 字符串1 == 字符串2 ]
[ 字符串1 != 字符串2 ]
格式2:
[ -z 字符串 ] #检查字符串是否为空(Zero),对于未定义或赋予空值的变量将视为空串
[ -n 字符串 ] #检查是否有字符串存在
逻辑测试
格式1:[ 表达式1 ] 操作符 [ 表达式2 ]
格式2:命令1 操作符 命令2
常用的操作符:
-a或&& :逻辑与,“而且”的意思,前后条件需都成立
-o或|| :逻辑或,“或者”的意思,只需前后条件中一个成立
! :逻辑否
if条件语句
单分支
双分支
多分支
if条件语句题目
检查用户家目录中的 test.sh 文件是否存在,并且检查是否有执行权限
提示用户输入100米赛跑的秒数,要求判断秒数大于0且小于等于10秒的进入选拔赛,大于10秒的都淘汰,如果输入其它字符则提示重新输入;进入选拔赛的成员再进一步判断男女性别,男生进男生组,女生进女生组,如果输入错误请提示错误。
提示用户输入内容,使用if 语句判断输入的内容是否为整数,并判断是偶数还是奇数
case语句
case 变量值 in
模式一)
命令序列
;;
模式二)
命令序列
;;
*)
默认命令序列
esac
用case语句解压根据后缀名为 .tar.gz 或 .tar.bz2 的压缩包到 /opt 目录