美文网首页
shell 3. 条件测试和判断语句

shell 3. 条件测试和判断语句

作者: JunChen | 来源:发表于2022-09-04 14:29 被阅读0次

一、条件测试

$? 等于0 表示前一个命令测试成功,等于1表示测试失败

字符串测试

# 第一种写法
test expression

# 第二种写法 expression前后一定要有空格
[ expression ]

数据

1. 判断字符串是否不为空,0表示不为空,1表示为空。

2. 判断字符串是否为空,0表示为空,1表示不为空。

3. 判断两个字符串是否相等,0表示相等,1表示不相等。

4. 判断两个字符串是否不相等,0表示不相等,1表示相等。

5. 常用的字符串判断

1. 判断字符串是否为空 2. 判断字符串是否相等

整数测试

# 第一种写法
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 文件是否存在,且为可执行文件,如果是测试成功

实例


连接多个条件测试语句的符号

操作符 说明
! not
-a and
-o or

实例

更加直观 &&|| 符号的使用


二、判断语句

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

相关文章

网友评论

      本文标题:shell 3. 条件测试和判断语句

      本文链接:https://www.haomeiwen.com/subject/skkmnrtx.html