ABS之条件测试文件测试操作符
2012-02-15 15:45
162 查看
if/then结构用来判断命令列表的退出状态码是否为0 如果成功的话, 那么就执行接下来的一个或多个命令.
echo 什么是真!!!!!!!!
if [ 测试条件为真 ]
then
command
command
else #可选,如果原始的条件判断的结果为假,那么在这里添加默认的代码来执行
command
command
fi
如果if then 在同一行
if [ -x "$test" ] ; then
else if和elif
elif 是else if 的缩写,作用是在外部的判断结构中在嵌入一个内部的if then 结构
test, /usr/bin/test, [ ], 和/usr/bin/[都是等价命令
[[]] 比[] 结构更加通用,这是一个扩展的test命令
使用[[ ... ]]条件判断结构, 而不是[ ... ], 能够防止脚本中的许多逻辑错误. 比如, &&, ||, <, 和> 操作符能够正常存在于[[ ]]条件判断结构中, 但是如果出现在[ ]结构中的话, 会报错.
如:
#!/bin/bash
var1=20
var2=22
[ "$var1" -ne "$var2" ] && echo "$var1 is not equal to $var2"
#测试var1是否等于var2
home=/home/bozo
[ -d "$home" ] || echo "$home directory does not exist "
&&是不是不管前面的命令执行如何,都要执行后面的命令,|| 是不是前面的命令执行失
败就执行后面的命令
文件测试操作符
-e 文件存在
-f 这个文件是一个一般文件,不是目录或设备文件
-s 文件大小不为零
-d 这是一个目录
-b 块设备
-c 字符设备 (键盘,声卡等)
-p 文件是一个管道
-h 符号链接
-L 符号链接
-S 这是一个socket
-t 文件(描述符)被关联到一个终端设备上
这个测试选项一般被用来检测脚本中的stdin([ -t 0 ]) 或者stdout([ -t 1 ])是否来自于一个终端.
-r -w -x 分别表示文件是否有可读可写可执行权限
-g -u 分别表示 setgid setuid
-O 判断你是否是文件的拥有者
-G 文件GID是否与你相同
-N 从文件上一次被读取到现在为止,文件是否被修改过
file1 -nt file2 文件file1 比文件flie2新
file1 -ot file2 文件file1 比文件flie2旧
file1 -ef file2 文件file1和文件file2是相同的硬链接
!反转上面-nt -ot -ef 所有的测试结果,如果没有条件给出,返回真值
其他比较符号!
整数比较!
-eq 等于
-ne 不等于
-gt 大于
-ge 大于等于
-lt 小于
-le 小于等于
<=, < ,> ,>=,用在双括号中使用
如:(("$a" < "$b"))
字符串比较
=
if [ "$a" = "$b" ]
==与=等价
!=不等号
if [ "$a" != "$b" ]
例子:
#!/bin/bash
a=4
b=5
echo
if [ "$a" -ne "$b" ]
then
echo "$a is not equal to $b"
else "(arithentic comparison)"
fi
echo
if [ "$a" != "$b" ]
then
echo "$a is not equal to $b"
else "(string comparison)"
fi
可以通过if/then结构来使用嵌套的条件测试. 最终的结果和上面使用&&混合比较操作符的结果是相同的.
1 if [ condition1 ]
2 then
3 if [ condition2 ]
4 then
5 do-something # But only if both "condition1" and "condition2" valid.
6 fi
7 fi
本文出自 “风光坏家伙” 博客,转载请与作者联系!
echo 什么是真!!!!!!!!
if [ 测试条件为真 ]
then
command
command
else #可选,如果原始的条件判断的结果为假,那么在这里添加默认的代码来执行
command
command
fi
如果if then 在同一行
if [ -x "$test" ] ; then
else if和elif
elif 是else if 的缩写,作用是在外部的判断结构中在嵌入一个内部的if then 结构
test, /usr/bin/test, [ ], 和/usr/bin/[都是等价命令
[[]] 比[] 结构更加通用,这是一个扩展的test命令
使用[[ ... ]]条件判断结构, 而不是[ ... ], 能够防止脚本中的许多逻辑错误. 比如, &&, ||, <, 和> 操作符能够正常存在于[[ ]]条件判断结构中, 但是如果出现在[ ]结构中的话, 会报错.
如:
#!/bin/bash
var1=20
var2=22
[ "$var1" -ne "$var2" ] && echo "$var1 is not equal to $var2"
#测试var1是否等于var2
home=/home/bozo
[ -d "$home" ] || echo "$home directory does not exist "
&&是不是不管前面的命令执行如何,都要执行后面的命令,|| 是不是前面的命令执行失
败就执行后面的命令
文件测试操作符
-e 文件存在
-f 这个文件是一个一般文件,不是目录或设备文件
-s 文件大小不为零
-d 这是一个目录
-b 块设备
-c 字符设备 (键盘,声卡等)
-p 文件是一个管道
-h 符号链接
-L 符号链接
-S 这是一个socket
-t 文件(描述符)被关联到一个终端设备上
这个测试选项一般被用来检测脚本中的stdin([ -t 0 ]) 或者stdout([ -t 1 ])是否来自于一个终端.
-r -w -x 分别表示文件是否有可读可写可执行权限
-g -u 分别表示 setgid setuid
-O 判断你是否是文件的拥有者
-G 文件GID是否与你相同
-N 从文件上一次被读取到现在为止,文件是否被修改过
file1 -nt file2 文件file1 比文件flie2新
file1 -ot file2 文件file1 比文件flie2旧
file1 -ef file2 文件file1和文件file2是相同的硬链接
!反转上面-nt -ot -ef 所有的测试结果,如果没有条件给出,返回真值
其他比较符号!
整数比较!
-eq 等于
-ne 不等于
-gt 大于
-ge 大于等于
-lt 小于
-le 小于等于
<=, < ,> ,>=,用在双括号中使用
如:(("$a" < "$b"))
字符串比较
=
if [ "$a" = "$b" ]
==与=等价
!=不等号
if [ "$a" != "$b" ]
例子:
#!/bin/bash
a=4
b=5
echo
if [ "$a" -ne "$b" ]
then
echo "$a is not equal to $b"
else "(arithentic comparison)"
fi
echo
if [ "$a" != "$b" ]
then
echo "$a is not equal to $b"
else "(string comparison)"
fi
可以通过if/then结构来使用嵌套的条件测试. 最终的结果和上面使用&&混合比较操作符的结果是相同的.
1 if [ condition1 ]
2 then
3 if [ condition2 ]
4 then
5 do-something # But only if both "condition1" and "condition2" valid.
6 fi
7 fi
本文出自 “风光坏家伙” 博客,转载请与作者联系!
相关文章推荐
- 26_Shell语言――――if条件判断之文件测试、短路操作符
- Linux exit 文件测试 测试条件、特殊变量 (笔记)
- windows条件下,Ping加上时间戳,并保存到文件,适用于测试网络
- 测试你对条件操作符的掌握程度
- Linux Shell Bash 文件测试操作符
- shell 常用文件、字符串、二元整数测试操作符-持续更新中
- 测试If语句和条件操作符运行效率
- shell编程:引用变量、内部变量、条件测试、字符串比较、整数比较、文件比较、逻辑操作、引号、通配符、调试执行
- perl文件测试操作符
- bash脚本编程之(3/4)条件判断、算符运算、整数测试、文件测试、特殊变量等笔记
- 《高级Bash脚本编程指南》学习笔记(9)——基础:文件测试操作符
- shell编程:引用变量、内部变量、条件测试、字符串比较、整数比较、文件比较、逻辑操作、引号、通配符、调试执行
- 字符串测试/文件测试/整数比较/逻辑操作符
- shell编程:引用变量、内部变量、条件测试、字符串比较、整数比较、文件比较、逻辑操作、引号、通配符、调试执行
- 不要忽略文件测试操作符
- shell编程:引用变量、内部变量、条件测试、字符串比较、整数比较、文件比较、逻辑操作、引号、通配符、调试执行
- perl 文件测试操作符汇总
- linux命令中bash常用的条件测试:整数测试eq,文件测试-e,字符串测试==,组合测试
- 比如比较字符串、判断文件是否存在及是否可读等,通常用"[]"来表示条件测试。
- Perl – 文件测试操作符