专业的编程技术博客社区

网站首页 > 博客文章 正文

shell——If语句2(shell if 语法)

baijin 2024-09-01 13:09:03 博客文章 8 ℃ 0 评论

if语句

if语句用于条件控制结构中,其一般格式为:

if 测试条件#命令表1
then 命令1
else 命令2
fi

例如:

if test -f "$1"
then echo "$1 is an ordinary file . "
else echo "$1 is not an ordinary file . "
fi

应该注意,if语句中else部分可以缺省。另外,if 语句的else部分还可以是else—if结构,此时可以用关键字“elif”代替“else if”。

  通常,if的测试部分是利用test命令实现的。其实,条件测试可以利用一般命令执行成功与否来作判断。

如果命令正常结束,则表示执行成功,其返回值为0,条件测试为真;如果命令执行不成功,其返回值不等于0,条件测试就为假。

2.条件测试

条件测试有三种常用形式:

一种是用test命令,如上所示

另一种是用一对方括号将测试条件括起来。这两种形式是完全等价的。

例如,测试位置参数$1是否是已存在的普通文件,可写为test -f "$1"。也可写成[ -f "$1" ]。利用一对方括号表示条件测试时,在左方括号“[”之后、右方括号“]”之前各应有一个空格。

第三种形式是:

[[条件表达式]]

  test命令可以和多种系统运算符一起使用。

这些运算符可以分为四类:文件测试运算符(文件的属性及权限等)、字符串测试运算符(两个串是否相同及是否为空)、数值测试运算符(大小关系)和逻辑运算符(逻辑与、或、非)。

test 条件测试,语法 test[选项] 参数

选项 -f 文件 若文件存在且可读则真
-w 文件 若文件存在且可写则真
-x 文件 若文件存在且可执行则真
-f 文件 若文件存在且为普通文件则真
-d 文件 若文件存在且为目录文件则真
-p 文件 若文件存在且为fifo文件则真
-s 文件 若文件存在且不空则真
-z 串 若串长度为0则真
-n 串 若串长度不为0则真
串 若串不是空串则真
串1 = 串2 若串1等于串2则真
串1 != 串2 若串1不等于串2则真


n1 -eq n2 若n1与n2数值相当则真
n1 -ne n2 若n1与n2数值不相当则真
n1 -lt n2 若n1小于n2则真
n1 -le n2 若n1小于等于n2则真
n1 -gt n2 若n1大于n2则真
n1 -ge n2 若n1大于等于n2则真

可用 与 -a 或 -o 非 ! 将条件表达式连接起来

2022-9-18

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表