一、条件测试
$? 等于0 表示前一个命令测试成功,等于1表示测试失败
字符串测试
# 第一种写法
test expression
# 第二种写法
[ expression ]
数据
1. 判断字符串是否不为空,0表示不为空,1表示为空。
2. 判断字符串是否为空,0表示为空,1表示不为空。
3. 判断两个字符串是否相等,0表示相等,1表示不相等。
4. 判断两个字符串是否不相等,0表示不相等,1表示相等。
整数测试
# 第一种写法
test number1 option number2
# 第二种写法
[ number1 option number2 ]
optiion
运算符 | 说明 |
---|
-eq | 等于 |
-ne | 不相等 |
-gt | 大于 |
-ge | 大于等于 |
lt | 小于 |
le | 小于等于 |
实例
文件测试
# 第一种写法
test option file
# 第二种写法
[ option file ]
option
操作符 | 说明 |
---|
-a file | 文件是否存在,如果存在,如果是测试成功 |
-b file | 文件是否存在,且为块文件,如果是测试成功 |
-c file | 文件是否存在,且为字符文件,如果是测试成功 |
-d file | 文件是否存在,且为目录,如果是测试成功 |
-s file | 文件是否为非空文件,如果是测试成功 |
-f file | 文件是否存在,且为常规文件,如果是测试成功 |
-w file | 文件是否存在,且为可写文件,如果是测试成功 |
-r file | 文件是否存在,且为可读文件,如果是测试成功 |
-x file | 文件是否存在,且为可执行文件,如果是测试成功 |
实例
连接多个条件测试语句的符号
实例
二、判断语句
if语句
if expression1
then
code...
elif expression2
then
code...
elif expression3
then
code...
else
code...
fi
可以使用exit语句来退出
实例
#! /bin/zsh
echo "Please enter a number"
read num
if [ "${num}" -eq 10 ];then
echo "输入的数字等于10"
elif [ "${num}" -gt 10 ];then
echo "输入的数字大于10"
elif [ "${num}" -lt 10 ];then
echo "输入的数字小于10"
else
echo "输入的不是数字"
fi
case语句
case variable in
value1)
code;;
value2)
code;;
esac
实例
echo "输入一个编码,返回分类"
read score
case "${score}" in
"0101")
echo "外墙砖";;
"0102")
echo "仿古砖";;
"0103")
echo "抛光砖";;
esac