千家信息网

Shell脚本基本判断

发表于:2025-02-04 作者:千家信息网编辑
千家信息网最后更新 2025年02月04日,一.条件测试格式1: test 条件表达式格式2:[ 条件表达式 ]二.文件测试 -d:测试是否为目录(Directory) -e:测试目录或文件是否存在(Exist) -f:测试
千家信息网最后更新 2025年02月04日Shell脚本基本判断

一.条件测试

格式1: test  条件表达式格式2:[ 条件表达式 ]

二.文件测试

    -d:测试是否为目录(Directory)    -e:测试目录或文件是否存在(Exist)    -f:测试是否为文件(File)    -r:测试当前用户是否有权限读取(Read)    -w:测试当前用户是否有权限写入(Write)    -x:测试当前用户是否有权限执行(eXcute)[root@localhost ~]# test -d /etc/yum  //测试/etc/yum是否是目录[root@localhost ~]# echo $?             //上一条命令执行状态0就是正常执行,非0就是错误    0[root@localhost ~]# test -f /etc/yum   //测试/etc/yum是否是文件[root@localhost ~]# echo $?    1[root@localhost ~]# test -e /etc/yum  //测试/etc/yum是否存在[root@localhost ~]# echo $?    0

三.整数测试

    -eq:等于(Equal)    -ne:不等于(Not Equal)    -gt:大于(Greater Than)    -lt:小于(Lesser Than)    -le:小于或等于(Lesser or Equal)    -ge:大于或等于(Greater or Equal)[root@localhost ~]# [ $(who|wc -l) -gt 10 ]&& echo "有点多!" //统计当前用户量    有点多!

四.字符串比较

    格式1:[ 1 == 2 ]    格式2:[ -z 2 ]    ==:字符串内容相同    !=:字符串内容不同,!表示相反的意思    -z:字符串内容为空

五.逻辑测试

    -a或&&:逻辑与、"而且"的意思    -o或||: 逻辑或、"或者"的意思    !:逻辑否[root@localhost ~]# [ ! -e /opt/abc ]&&mkdir /opt/abc  // /opt/abc这个目录不存在我就创建这个目录[root@localhost ~]# ls /optabc  rh

6.if语句单分支

![](https://s1.51cto.com/images/blog/201910/09/a9f39959fb7e9ee3c80634b282a7ac5d.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)#!/bin/bashmulu="/etc/ccc"  if [ ! -d $mulu ] then    mkdir -p $mulufi

7.if双分支语句

#!/bin/bashping -c 3 -i 0.2 -W 3 $1 &>/dev/nullif [ $? -eq 0 ]then    echo "Host $1 is up "else    echo "Host $1 is down "fi#-C发数据包  ,-0.2每隔两秒发一次  -W 3次回复  所有输出到这个无用的目录中[root@localhost ~]# source test.sh    Host  is down 

8.if多分支和嵌套语句

#!/bin/bash#一场跑步比赛,10秒内进入决赛,进入决赛之后会被分进男子组或女子组read -p "请输入你的比赛时间" timif [ $stim -lt 10 ]then    echo "进入决赛"    read -p "请输入你的性别(男/女) " sex    if [ $sex = "男" ]        then            echo "进入男子组"    else            echo "进入女子组"    fielse "被淘汰"fi
0