Chinaunix首页 | 论坛 | 博客
  • 博客访问: 10731959
  • 博文数量: 2905
  • 博客积分: 20098
  • 博客等级: 上将
  • 技术积分: 36298
  • 用 户 组: 普通用户
  • 注册时间: 2009-03-23 05:00
文章存档

2012年(1)

2011年(3)

2009年(2901)

分类: LINUX

2009-03-23 11:28:45

Shell中的布尔测试命令是什么?其用法怎样?
Shell中的布尔测试与一般编程语言有所不同,有两个命令可以表示(它们其实是同一个命令,只是表示方法不同而已):test[(这不是左括号吗?也算命令吗?答案是肯定的,不信你可以去检查ls -l /usr/bin/[。还要注意一点的是,通常使用[表示时,会在测试完成后加上一个],其实这只是为了可读性而增加的,没有实际意义)。例如:
if test –f my.txt if [ -f my.txt ] 都表示测试文件my.txt是否存在。(注意[-f之间必须有空格)
使用布尔测试符测试的条件类型包含三类:字符串测试/算术测试/文件测试,具体分为:
1)字符串测试
string1 = string2           测试两字符串是否相等
string1 != string2                   测试两字符串是否不等
-n string                          测试字符串是否不为空
-z string                           测试字符串是否为空
2)算术测试
expr1 -eq expr2             测试两表达式是否相等
expr1 -ne expr2             测试两表达式是否不等
expr1 -gt expr2             测试expr1是否大于expr2
expr1 -ge expr2             测试expr1是否大于等于expr2
expr1 -lt expr2               测试expr1是否小于expr2
expr1 -le expr2              测试expr1是否小于等于expr2
!expr                                测试表达式是否为假
3)文件测试
-d file                                测试该文件是否为目录
-e file                                测试该文件是否存在,但该选项可移植性不好,通常改用-f
-f file                                 测试该文件是否为常规文件
-g file                                测试该文件是否设置了set-group-id
-r file                                测试该文件是否可读
-s file                                测试该文件是否不空
-u file                                测试该文件是否设置了set-user-id
-r file                                测试该文件是否可写
-x file                                测试该文件是否可执行
 
Shell中的条件控制结构是怎样的?
编程语言中的条件控制结构通常是if..then之类的,Shell也不例外。其格式如下:
if 条件1
then
  语句A
elif 条件2
then 
语句B
elif 条件3
then
  语句C
else
  语句D
fi
 
Shell中的循环控制结构是怎样的?
Shell中的循环结构也与其他编程语言类似。基本格式如下:
1for循环(适于在字符串集中循环,注意其与通常的for语句的差别)
for 变量 in 值集   
do
  语句
done
2while循环(适于在数集中循环或条件测试)
while 条件 do
  语句
done
3until语句(与while的条件判断正好相反)
until 条件
do
  语句
done
 
关于case语句的用法是怎样?
case的结构比较复杂,所以在这里单列出来。其基本格式为:
case 变量 in
  模式 [ | 模式] …) 语句A;;
  模式 [ | 模式] …) 语句B;;
 
esac
看个例子吧:
case “$dayofweek” in
  1) echo “Today is Monday”;;
  2) echo “Today is Tuesday”;;
  3) echo “Today is Wednesday”;;
  4) echo “Today is Thursday”;;
  5) echo “Today is Friday”;;
  6) echo “Today is Saturday”;;
  7) echo “Today is Sunday”;;
  *) echo “Sorry, your input is wrong!”;;
esac

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