Linux Shell编程与条件语句

一、Test

测试特定的表达式是否成立,当条件成立,测试语句的返回值为0,否则为其他数值

格式:test 条件表达式 或 [ 条件表达式 ] (条件表达式的两边都需要空格,且此方法更为常用)

文件测试

常用选项

常见的测试操作符 含义

-d 测试是否为目录(directory)

-e 测试目录或文件是否存在(Exist)

-f 测试是否为文件(File)

-r 测试当前用户是否有权限读取(Read)

-w 测试当前用户是否有权限写入(Write)

-x 测试当前用户是否有权限执行(eXcute)

-L 测试是否为软连接文件

-nt 判断文件A是否比文件B新

-ot 判断文件A是否比文件B旧

-ef 判断两个文件是否为同一文件

例1

例2

例3:可以使用 && 和 echo 一起使用

例5:比较两个文件

整数值比较

格式:[ 整数1 操作符 整数2 ]

常见测试操作符

       操作符                   含义
        -eq                   等于(Equal)
        -ne                   不等于(Not Equal)
        -lt                   小于(Leser Than)
        -gt                   大于(Greater Than)
        -le                   小于或等于(Lesser or Equal)
        -ge                   大于或等于(Greater or Equal)

例1:查询当前目录下的文件数是否大于10,如果大于,则进行提示

例2:查看系统内存是否低于1024M,如果低于则提示

字符串比较

格式:[ 字符串1 = 字符串2 ] //判断是否相等

[ 字符串1 != 字符串2 ] //判断是否不等

[ -z 字符串 ] //判断字符串内容是否为空

操作符

       操作符                     含义
        =                    字符串内容相同
        !=                   字符串内容不同,!号表示相反的意思
        -z                    字符串内容为空

例1:判断当前系统语言环境是否为“us.en”,如果不是则提示

逻辑测试

格式:[ 表达式1 ] 操作符 [ 表达式2 ]

命令1 操作符 命令2

操作符

-a 或 && 逻辑与,而且的意思

-o 或 ▕▕ 逻辑或,或者的意思

! 逻辑否

二、if

单分支结构

如果只有一个判断式要进行,那么我们可以使用单分支的if语句 ,只有在条件成立时才会执行,否则不执行任何操作

格式:

if  [ 条件判断语句  ] 
then
echo  “当前条件成立时,执行一条或多条命令”
fi

双分子结构

在同一个数据的判断中,如果该数据需要进行两种不同的判断,我们就需要双分支if语句了

格式:

if [  条件判断式  ]
then
echo  “当条件判断成立时,可以执行一条或多条命令”
else
 echo  “当条件判断不成立时,可以执行一条或多条命令”
fi

多分支结构

如果数据需要进行多种不同的判断,则可以使用多分支结构 嵌套使用

格式:

if [  条件判断式  ]
then
echo  “当条件判断成立时,可以执行一条或多条命令”
elif  [  条件判断式二  ]  
then
echo  “当条件判断式成立时,可以执行一条或多条命令” 
else
当上面的条件判断都不成立时,可以执行一条或多条命令
fi

三、case

格式:

case  变量名称  in
模式1)
命令序列
;;
模式2)
程序段
;;
*)
不包含第一个变量内容与第二个变量内容的其它程序执行段
默认程序段
;;
esac

case行首必须以单词 “in”,每一模式必须以单个右括号")"结束

双分号 ";;" 表示命令序列的结束

模式字符串中,可以用方括号表示一个连续的范围,如 "[0-9]";还可以使用竖杠 | 表示或,比如a|b

最后的 ) 表示默认模式,其中的相当于通配符

例:不管输入大小写字母,都能输出yes或者no

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值