Shell

推荐列表 站点导航

当前位置:首页 > 脚本编程 > Shell >

shell编程基础之条件测试

来源:网络整理  作者:  发布时间:2020-12-20 20:31
本文介绍下,shell编程的基础内容之有关条件测试的相关知识,有需要的朋友参考下。...
 

[root@localhost ~]# echo $?
关键字却不这样。关键字把整个表达式看作一个单独的元素,并且返回一个退出码。[[]]结构比[]更灵活,是一个扩展的test命令。

复制代码 代码示例:

字符串测试是错误捕获很重要的一部分,特别在测试用户输入或比较变量时尤为重要。
 

1、文件测试

[root@localhost ~]# [ -w results.txt -a -w scores.txt ]
!= 两个字符串不等
test is a shell builtin
 

-d 目录 -s 文件长度大于0、非空

注意:
 

[root@localhost ~]# echo $?
结果为真。

可以用逻辑操作符将两个测试表达式结合起来。

$ type [ [[ test

[root@localhost ~]# [ "990" -le "995" ] -a [ "123" -gt "33" ]
-lt 第一个数小于第二个数
-ge 第一个数大于等于第二个数

[root@localhost ~]# [ "990" -le "995" -a "123" -gt "33" ]
-gt 第一个数大于第二个数
-o 逻辑或,操作符两边一边为真,结果为真,否则为假。

-a 逻辑与,操作符两边均为真,结果为真,否则为假。

2、字符串测试
[[ is a shell keyword
 

== 两个字符串相等

测试两个表达式,如果都为真,结果为真,正确使用方式应为:

测试时使用逻辑操作符

1)、比较两个文件:
-r 可读 -x 可执行

结果果然正确。

复制代码 代码示例:

[ is a shell builtin
测试文件状态的操作符如下:

2)、测试两个文件是否均可读。

4、test、[] 、[[]]、(())的异同
 

复制代码 代码示例:

有关shell脚本中条件测试的基础内容,就介绍这些了,希望对大家有所帮助。

[[ 是 bash 程序语言的关键字,而其他是内建命令!
 

3、测试数值
-rwxr-xr-x 1 root root 0 Nov 21 12:22 results.txt
仅需要用到一对方括号,而不能用两个,否则将返回错误信息“ too many arguments”。

[root@localhost ~]# ls -l results.txt scores.txt
 

测试数值可以使用许多操作符,可以是:
[root@localhost ~]# echo $?
0

-bash: [: too many arguments

在linux shell中,有时需要判断字符串是否相等,有时需要检查文件状态或进行数字测试。

字符串测试的操作符有三种。

那么,本节就带领大家学习下shell脚本中有关条件测试的相关知识。

如果是命令,它把参数作为比较表达式或文件测试,并且根据比较结果,返回一个退出码。那样比如 ">" "<" 就被 shell 解释为重定向符号了。
 

很多时候,这个三个功能通用。但是命令和关键字总是有区别的。
[root@localhost ~]# echo $?

[root@localhost ~]# NUMBER=130
0
测试文件状态是否为OK,但是有时要比较两个文件状态。shell提供三种逻辑操作完成此功能。
0
-f 正规文件 -w 可写

复制代码 代码示例:

-le 第一个数小于等于第二个数
 

-n 非空字符串

(())可以应用于算术表达式的运算,并将结果作为退出码。如果表达式结果为0,则返回1作为退出码,否则返回0作为退出码。

复制代码 代码示例:

 

-z 字符串为空

复制代码 代码示例:

测试两个数是否相等(130是否等于130)。
 

-L 符号连接 -u 文件有suid位设置

可以不必将整数值放入变量,直接用数字比较即可,但要加引号。
0

[root@localhost ~]# [ "$NUMBER" -eq "130" ]
-rw-r--r-- 1 root root 0 Nov 21 12:15 scores.txt

-ne 数值不相等
! 逻辑否,条件为假,结果为真。

-eq 数值相等

[root@localhost ~]# [ "990" -le "995" ]

相关热词: shell

本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供用于网络技术学习参考,学习中请遵循相关法律法规!

本文地址: https://www.juheyunku.com/jiaob/shell/6271.shtml

相关文章
最新文章
PHP生成奖状 PHP生成奖状

时间:2021-01-06

python实现输入五个数并求 python实现输入五个数并求

时间:2021-01-06

php检测网站是否正常打开 php检测网站是否正常打开

时间:2021-01-05

python怎么右对齐 python怎么右对齐

时间:2021-01-05

Python3爬虫入门之Python3的安 Python3爬虫入门之Python3的安

时间:2021-01-05

如何用PHP接收http请求头信 如何用PHP接收http请求头信

时间:2021-01-05

数据库怎么连接用php写的 数据库怎么连接用php写的

时间:2021-01-05

php后缀怎么打开 php后缀怎么打开

时间:2021-01-05

Copyright © www.juheyunku.com      关于 | 合作 | 声明 | 联系 | 更新 | 地图 | Tags

shell编程基础之条件测试

2020-12-20 编辑:

 

[root@localhost ~]# echo $?
关键字却不这样。关键字把整个表达式看作一个单独的元素,并且返回一个退出码。[[]]结构比[]更灵活,是一个扩展的test命令。

复制代码 代码示例:

字符串测试是错误捕获很重要的一部分,特别在测试用户输入或比较变量时尤为重要。
 

1、文件测试

[root@localhost ~]# [ -w results.txt -a -w scores.txt ]
!= 两个字符串不等
test is a shell builtin
 

-d 目录 -s 文件长度大于0、非空

注意:
 

[root@localhost ~]# echo $?
结果为真。

可以用逻辑操作符将两个测试表达式结合起来。

$ type [ [[ test

[root@localhost ~]# [ "990" -le "995" ] -a [ "123" -gt "33" ]
-lt 第一个数小于第二个数
-ge 第一个数大于等于第二个数

[root@localhost ~]# [ "990" -le "995" -a "123" -gt "33" ]
-gt 第一个数大于第二个数
-o 逻辑或,操作符两边一边为真,结果为真,否则为假。

-a 逻辑与,操作符两边均为真,结果为真,否则为假。

2、字符串测试
[[ is a shell keyword
 

== 两个字符串相等

测试两个表达式,如果都为真,结果为真,正确使用方式应为:

测试时使用逻辑操作符

1)、比较两个文件:
-r 可读 -x 可执行

结果果然正确。

复制代码 代码示例:

[ is a shell builtin
测试文件状态的操作符如下:

2)、测试两个文件是否均可读。

4、test、[] 、[[]]、(())的异同
 

复制代码 代码示例:

有关shell脚本中条件测试的基础内容,就介绍这些了,希望对大家有所帮助。

[[ 是 bash 程序语言的关键字,而其他是内建命令!
 

3、测试数值
-rwxr-xr-x 1 root root 0 Nov 21 12:22 results.txt
仅需要用到一对方括号,而不能用两个,否则将返回错误信息“ too many arguments”。

[root@localhost ~]# ls -l results.txt scores.txt
 

测试数值可以使用许多操作符,可以是:
[root@localhost ~]# echo $?
0

-bash: [: too many arguments

在linux shell中,有时需要判断字符串是否相等,有时需要检查文件状态或进行数字测试。

字符串测试的操作符有三种。

那么,本节就带领大家学习下shell脚本中有关条件测试的相关知识。

如果是命令,它把参数作为比较表达式或文件测试,并且根据比较结果,返回一个退出码。那样比如 ">" "<" 就被 shell 解释为重定向符号了。
 

很多时候,这个三个功能通用。但是命令和关键字总是有区别的。
[root@localhost ~]# echo $?

[root@localhost ~]# NUMBER=130
0
测试文件状态是否为OK,但是有时要比较两个文件状态。shell提供三种逻辑操作完成此功能。
0
-f 正规文件 -w 可写

复制代码 代码示例:

-le 第一个数小于等于第二个数
 

-n 非空字符串

(())可以应用于算术表达式的运算,并将结果作为退出码。如果表达式结果为0,则返回1作为退出码,否则返回0作为退出码。

复制代码 代码示例:

 

-z 字符串为空

复制代码 代码示例:

测试两个数是否相等(130是否等于130)。
 

-L 符号连接 -u 文件有suid位设置

可以不必将整数值放入变量,直接用数字比较即可,但要加引号。
0

[root@localhost ~]# [ "$NUMBER" -eq "130" ]
-rw-r--r-- 1 root root 0 Nov 21 12:15 scores.txt

-ne 数值不相等
! 逻辑否,条件为假,结果为真。

-eq 数值相等

[root@localhost ~]# [ "990" -le "995" ]

本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供学习参考!
本文地址为 https://www.juheyunku.com/jiaob/shell/6271.shtml

相关文章

风云图片

推荐阅读

返回Shell频道首页