`
kanwoerzi
  • 浏览: 1640004 次
文章分类
社区版块
存档分类
最新评论

Linux笔记——条件测试test

 
阅读更多

列表:

Linux笔记——vim常用操作及扩展补充[手册]

Linux笔记——linux常用命令集合

Linux笔记——命令:awk

Linux笔记——命令:sed

Linux笔记——命令:grep

Linux笔记——命令:find

Linux笔记——命令:Sort,uniq,join,cut,paste,split

Linux笔记——shell基础:变量&本地变量&位置变量&特定变量参数

Linux笔记——条件测试test

Linux笔记——控制流

Linux笔记——shell补充:参数传递&函数等

Linux笔记——正则表达式入门及应用

Linux笔记——linux进程

Linux笔记——SVN命令总结

rpm&yum包管理命令总结

鉴于博客,表格&排版&颜色标记等等无法显示,大家可以下载这个笔记的资源

12个文档,不需要积分,以目录+表格+颜色标记形式

下载资源地址http://download.csdn.net/detail/wklken/3815477

The end! Thx! wklken的笔记

-----------------------------------------------

条件测试

Test

命令用于测试字符串、文件状态和数字,也同控制流相结合

文件状态判断;

字符串比较;

数字比较;

逻辑判断;

语法

两种格式: test condition 或 [ condition ] 注意两边加了空格

中括号([])、参数之间必须有一个空格

文件条件测试

-d

目录

-f

普通文件(Regular file)

-L

符号链接

-r

可读

-b

块专用文件

-e

文件存在

-g

如果文件的set-group-id位被设置则结果为真

-s

文件长度大于0,非空

-w

可写

-u

文件有suid位设置

-x

可执行

-c

字符专用文件

-L

符号链接

示例

Set-uid位授予程序其拥有者的访问权限而不是其使用者的访问权限

Set-gid位授予了程序其所在组的访问权限

示例

1. 测试文件是否可写

$test –w dream

$echo $?

或者

$[ -w dream ]

2. 测试目录是否存在

$[ -d appsbin ]

3. 测试文件权限是否设置了suid

$[ -u dream]

if test –f fred.c if [ -f fred.c ]

then

…..

fi

逻辑运算符

-a

逻辑与

-o

逻辑或

!

逻辑否

示例:

1. 测试两文件是否均可读

$[ -w result.txt –a –w scores.txt ]

$echo $?

2. 测试两文件中其中一个是否可执行

$[ -x dream –o –x dream2 ]

3. 判断是否可写可执行

$[ -w dream –a –x dream ]

$echo $?

4. 判断文件是非可执行文件

$[ ! –x dream ]

字符串测试

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

五种格式:

test “str”

test str_operator “str”

test “str1” str_operator “str2”

[ string_operator str1 ]

[ string string_operator string2 ]

String_operator 字符串比较

=

两字符串相等

!=

两字符串不等

-z

空串 [zero]

-n

非空串 [nozero]

示例:

1. 测试环境变量是否为空

$[ -z $EDITOR ]

$echo $?

2. 测试是否为某字符串

$[ $EDITOR = “vi” ]

$echo $?

3. 测试

$TYPE=”/dev/rmt0”

$TYPE2=”/dev/rmt1”

$[ “$TYPE” = “$TYPE2” ]

$echo $?

数值测试

格式

“number” numberic_operator “number”

或 [ “number” numberic_operator “number”]

Numberic_operator 算术比较

-eq

数值相等

-ne

不等

-gt

A>B

-lt

A<B

-le

A<=B

-ge

A>=B

示例:

1. 比较相等

$NUMBER=130

$[ $NUMBER –eq 130 ]

$echo $?

另一个:$[ “$NUMBER” –eq “130” ]

【引号是否必须?】

2. 比较两变量

$SOURCE=13

$DEST=15

$[ “$SOURCE” –gt “$DEST”]

$echo $?

3. 直接比较数值

$[ 990 –le 995 –a 123 –gt 33 ]


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics