linux程序猿搜索if语句,Linux Shell脚本if-else语句及test命令

Linux中的if语句根据其后紧跟的command语句的退出码是否非零进行逻辑判断,这是不同于其他编程语言的一个特性。

状态退出码的介绍可以参考:https://www.jianshu.com/p/ba478a2dbcbc

if-then语句的基本格式ifcommand

then

commands

fi

抑或是:if command; then

commands

fi

请注意后者在待求值的命令尾部增加了分号

if-then-else语句的基本格式if command

then

commands

else

commands

fi

需要多个if判断逻辑时使用如下命令if command1

then

commandsset 1

elif command2

then

commandsset 2

else

commands set 3

fi

test命令

在if-then语句中需要以命令是否成立作为判断条件时用test命令来辅助。

语法:

1.test condition

test命令中的条件成立,test命令将退出并返回状态码0,反之,退出返回非零状态码。

当test命令中的语句为空时,会判定为语句不成立,退出并返回非零状态码。

2.[ condition]

bash shell 提供了另一种测试方法,也就是test命令的另一种语法。

在if-then语句中将是这样的形态:if [ condition]

then

commands

fi

test命令可以判断的三类条件

□数值比较

□字符串比较

□文件比较

数值比较符 号                描述

n1 -eq n2        n1与n2是否相等

n1 -ge n2        n1是否大于或等于n2

n1 -gt n2         n1是否大于n2

n1 -le n2         n1是否小于或等于n2

n1 -lt n2          n1是否小于n2

n1 -ne n2        n1是否不等于n2

这里能处理的是整数和变量:#!/bin/bash

value1=10

if [ $value1 -gt 5 ]

then

echo "The test value $value1 is greater than 5"

else

echo "The test value $value1 is smaller than 5"

不能处理浮点数。

字符串比较符 号                描述

str1 = str2        str1是否与str2相同

str1 != str2        str1是否与str2不同

str1 < str2         str1是否比str2小

str1 > str2         str1是否比str2大

-n str1             str1长度是否非零

-z str1             str1长度是否为0

文件比较符号 描述

-d file      file是否为一个目录

-e file      file是否存在

-f file      file是否存在并是一个文件

-r file      file是否存在并可读

-s file      file是否存在并非空

-w file      file是否存在并可写

-x file      file是否存在并可执行

-O file      file是否存在并属当前用户所有

-G file      file是否存在并且默认组与当前用户相同

file1 -nt file1  file1是否比file2新

file1 -ot file1  file1是否比file2旧    #这里的新旧依据是文件的创建时间

欢迎指正和补充。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值