Chinaunix首页 | 论坛 | 博客
  • 博客访问: 901820
  • 博文数量: 113
  • 博客积分: 3160
  • 博客等级: 少校
  • 技术积分: 1801
  • 用 户 组: 普通用户
  • 注册时间: 2011-08-19 10:09
文章分类

全部博文(113)

分类: Python/Ruby

2012-06-03 21:18:52

2:条件

 

 

所有的程序涉设计语言的基础是对条件进行测试判断,并根据测试结果采取不同行动的能力。在实际工作中,大多数脚本程序都会广泛的使用shell的布尔判断命令[或者test。把[作为命令很奇怪,但是它会使得命令的语法看起来更简单,更明确。

 

 

下面的例子测试是否存在fred.c

if test -f fred.c

then

....

fi

 

 

if [ -f fred.c ]

then

.....

fi

 

 

这两种方式都是正确的,注意[]必须都要用空格和其它字符隔开,否则会出错。

 

[test命令可以使用的条件类型归位三类:字符串比较,算术比较和与文件有关的条件测试

 

 

字符串比较有三种:

 

 =(相等) , 

 

!=(不相等)

 

-n(字符串不为空则结果为真),

 

-z(字符专为空结果为真).

 

 

算术比较有七种:

 

 

-eq(相等则为真),

 

-ne(不等为真),

 

-gt(大于为真),

 

-ge(大于等于为真),

 

-lt(小于为真),

 

le(小于等于为真),

 

!(表达式为假结果为真)

 

 

文件条件测试有九种:

 

 

-d file (文件为目录为真)

 

-f(e) file  (文件存在则为真)

 

-g    file (文件SGID位被设置为真)

 

-u    file (文件SUID位被设置为真)

 

-r    file (文件可读为真)

 

-w    file (文件可写为真)

 

-x    file (文件可执行为真)

 

-s    file  (文件长度不为0为真)

 

 

与文件测试有关的条件测试结果为真的前提是文件必须存在。

 

 

实例:

 

 

#!/bin/sh

if [ -f /bin/bash ];then

    echo "file /bin/bash exits"

fi

if [ -d /bin/bash ];then

    echo "/bin/bash is a directory"

else

    echo "/bin/bash is not a directory"

fi

 

 

执行结果:

 

lishuo@lishuo-Rev-1-0:~/桌面$ ./t

file /bin/bash exits

/bin/bash is not a directory

 

 

这些内容是我平时阅读的笔记,源自《linux程序设计第三版》,详细内容请看原书

 

阅读(2159) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~