(七)Shell 脚本应用(二):条件测试与判断语句详解
一、条件测试
-
条件测试结果类型和测试方法
- 条件测试结果:
- 0:条件为真匹配。
- 非 0:条件为假不匹配。
- 条件测试的方法:
test [条件]
:第一种 test 命令测试。[ ]
:第二种测试。
- 条件测试结果:
-
文件条件测试
- 文件条件测试选项:
-r
:测试是否有读取权限。-w
:测试是否有写入权限。-x
:测试是否有执行权限。-d
:测试是否是一个目录。-f
:测试是否是一个文件。-e
:测试是否存在。
- 测试文件目录:
- 使用命令
[root@centos01 ~]# test -f /etc/sysconfig/network-scripts/ifcfg-ens32
测试是否是文件。 - 使用命令
[root@centos01 ~]# [ -d /etc ]
测试是否是目录。 - 使用命令
[root@centos01 ~]# echo $?
显示测试结果。
- 使用命令
- 条件测试结果为真显示提示信息:
- 使用命令
[root@centos01 ~]# [ -d /etc ] && echo "是一个目录"
。
- 使用命令
- 文件条件测试选项:
-
整数比较
- 比较测试选项:
-eq
:等于(=)。-ne
:不等于(=!)。-gt
:大于(>)。-lt
:小于(<)。-ge
:大于等于。-le
:小于等于。
- 测试:
- 使用命令
[root@centos01 ~]# [ 10 -ge 5 ] && echo "yes"
。
- 使用命令
- 比较测试选项:
-
字符串比较
- 字符串比较选项:
=
:等于。!=
:不等于。-z
:判断是否为空。
- 判断是否支持中文:
- 使用命令
[root@centos01 ~]# [ $LANG = zh_CN.UTF-8 ] && echo "支持中文"
。
- 使用命令
- 字符串比较选项:
-
逻辑判断
- 逻辑判断选项:
-and
:而且,两个结果必须为真。-or
:两个结果匹配任意一个。!
:取反。
- 逻辑判断使用:
- 使用命令
[root@centos01 ~]# [ -d /etc -a -f /etc/sysconfig/network-scripts/ifcfg-ens32 ] && echo "yes"
。 - 使用命令
[root@centos01 ~]# [ -d /etc -o -d /etc/sysconfig/network-scripts/ifcfg-ens32 ] && echo "yes"
。 - 使用命令
[root@centos01 ~]# [ -d /etc ] && [ -f /etc/sysconfig/network-scripts/ifcfg-ens32 ] && echo "yes"
。 - 使用命令
[root@centos01 ~]# [ -d /etc ] || [ -d /etc/sysconfig/network-scripts/ifcfg-ens32 ] && echo "yes"
。
- 使用命令
- 逻辑判断选项:
二、if 判断的基本使用
- if 单分支判断
- if 单分支判断语法结构:
收起
plaintext
复制
if 条件
then
命令;
fi
- 编写脚本判断目录是否存在,存在则创建退出:
使用命令[root@centos01 ~]# vim./mkdir.sh
创建脚本,内容为#!/bin/bash
、dir="/hb3066"
、if [! -d $dir ]
、then
、mkdir $dir
、fi
。 - 执行脚本:使用命令
[root@centos01 ~]# sh./mkdir.sh
。
- if 双分支
- 双分支语法结构:
收起
plaintext
复制
if 条件
then
命令 1;
else
命令 2;
fi
- 测试计算机连通性:
使用命令[root@centos01 ~]# vim./ping.sh
创建脚本,内容为#!/bin/bash
、read -p "请输入 IP 地址:" ip
、ping -c 3 -i 0.3 -w 3 $ip &> /dev/null
、if [ $? -eq 0 ]
、then
、echo "HOST $ip UP."
、else
、echo "HOST $ip down."
、fi
。 - 测试:使用命令
[root@centos01 ~]# sh./ping.sh
。
- 多分枝
- 多分枝语法结构:
收起
plaintext
复制
if 条件 1
then
命令序列 1;
elif 条件 2
then
命令序列 2;
else
命令序列 3;
fi
- 测试考试成绩:
使用命令[root@centos01 ~]# vim./test.sh
创建脚本,内容为#!/bin/bash/
、read -p "请输入考试成绩 1 - 100 分:" test
、if [ $test -ge 85 ] && [ $test -le 100 ]
、then
、echo "本次考试成绩为$test 分,恭喜考试成绩优秀."
、elif [ $test -ge 70 ] && [ $test -le 85 ]
、then
、echo "本次考试成绩为$test 分,考试成绩合格."
、else
、echo "本次考试成绩为$test 分,考试什么也不是重新学习."
、fi
。
原文地址:https://blog.csdn.net/m0_73458595/article/details/142695777
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!