首 页 | 精品电影 | 音乐天堂 | 在线游戏 | Flash MTV | 三湘书屋 | 幽默笑话 | 三湘图库 | 美女写真 | IT知识库 | QQ贴图 | 加入书签

网页制作网络编程图形图象操作系统冲浪宝典软件教学网络安全认证考试通信技术电子商务业内动态书籍教程原码

最近更新 文章分类 多媒体类 精品软件

本站搜索:
您的位置:三湘时空 -> IT知识库 -> 文章分类 -> 其它编程 -> Linux程式设计-11.ShellScript(bash)--(8)返回状态Exit
Linux程式设计-11.ShellScript(bash)--(8)返回状态Exit


文章类别:其它编程 来源: 作者: 发表日期:2006-3-6 字体:[ ]

小游戏 | 在线影院 | 幽默笑话 | 源码下载 | Flash MTV | 音乐试听 | 书屋 | 美女写真

在继续下去之前,我们必须要切入另一个话题,即返回状态值-ExitStatus。因为if/while/until都迁涉到了使用ExitStatus来控制程式流程的问题。

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

许多人都知道,在许多语言中(C/C /Perl....),都有一个exit的函数,甚至连Bash自己都有个exit的内建命令。而exit後面所带的数字,便是返回状态值-ExitStatus。
返回状态值可以使得程式与程式之间,利用Shellscript来结合的可能性大增,利用小程式,透过Shellscript,来完成很杂的工作。

在shell中,返回值为零表示成功(True),非零值为失败(False)。



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

举例来说,以下这个两个小程式yes/no分别会返回0/1(成功/失败):
/*yes.c*/
voidmain(void){exit(0);}
/*no.c*/
voidmain(void){exit(1);}
那麽以下这个"YES"的shellscript便会显示"YES"。
#!/bin/sh
#YES
ifyes;then
echo"YES"
fi
而"NO"不会显示任何东西。
#!/bin/sh
#NO
ifno;then
echo"YES"
fi

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

testexpress
[express]
在Shellscript中,testexpress/[express]这个语法被大量地使用,它是个非常实用的指令。由於它的返回值即ExitStatus,经常被运用在if/while/until的场合中。而在後面,我们也会大量运用到,在进入介绍if/while/until之前,有必要先解一下。

其返回值为0(True)或1(False),要看表述(express)的结果为何。

express格式

-bfile:当档案存在并且属性是Blockspecial(通常是/dev/xxx)时,返回True。
-cfile:当档案存在并且属性是characterspecial(通常是/dev/xxx)时,返回True。
-dfile:当档案存在并且属性是目录时,返回True。
-efile:当档案存在时,返回True。
-ffile:当档案存在并且是正常档案时,返回True。
-gfile:当档案存在并且是set-group-id时,返回True。
-kfile:当档案存在并且有"sticky"bit被设定时,返回True。
-Lfile:当档案存在并且是symboliclink时,返回True。
-pfile:当档案存在并且是namepipe时,返回True。
-rfile:当档案存在并且可读取时,返回True。
-sfile:当档案存在并且档案大小大於零时,返回True。
-Sfile:当档案存在并且是socket时,返回True。
-tfd:当fd被开启为terminal时,返回True。
-ufile:当档案存在并且set-user-idbit被设定时,返回True。
-wfile:当档案存在并且可写入时,返回True。
-xfile:当档案存在并且可执行时,返回True。
-Ofile:当档案存在并且是被执行的userid所拥有时,返回True。
-Gfile:当档案存在并且是被执行的groupid所拥有时,返回True。
file1-ntfile2:当file1比file2新时(根据修改时间),返回True。
file1-otfile2:当file1比file2旧时(根据修改时间),返回True。
file1-effile2:当file1与file2有相同的device及inodenumber时,返回True。
-zstring:当string的长度为零时,返回True。
-nstring:当string的长度不为零时,返回True。
string1=string2:string1与string2相等时,返回True。
string1!=string2:string1与string2不相等时,返回True。
!express:express为False时,返回True。
expr1-aexpr2:expr1及expr2为True。
expr1-oexpr2:expr1或expr2其中之一为True。
arg1OParg2:OP是-eq[equal]、-ne[not-equal]、-lt[less-than]、-le[less-than-or-equal]、-gt[greater-than]、-ge[greater-than-or-equal]的其中之一。




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

在Bash中,当错误发生在致命信号时,bash会返回128 signalnumber做为返回值。如果找不到命令,将会返回127。如果命令找到了,但该命令是不可执行的,将返回126。除此以外,Bash本身会返回最後一个指令的返回值。若是执行中发生错误,将会返回一个非零的值。
FatalSignal:128 signo
Can'tnotfindcommand:127
Can'tnotexecute:126
Shellscriptsuccessfullyexecuted:returnthelastcommandexitstatus
Fatalduringexecution:returnnon-zero
上一篇:Linux程式设计-11.ShellScript(bash)--(7)流程控制select 下一篇:Linux程式设计-11.ShellScript(bash)--(9)流程控制if
本栏目热门文章
·Discuz!论坛安装步骤图文详解 2006-5-22
·X-Space详细图文安装及常见错误解决 2006-5-22
·得心应手 X-Space下的二级域名配置 2006-5-22
·Discuz! 4.1.0 IIS Rewrite设置方法 2006-5-22
·轻松简单 X-Spacee与Discuz!论坛整合详解 2006-5-22
·Perl文件及目录操作 2006-3-6
·Shell介绍 2006-3-6
·站长手记:Discuz!4.1多论坛数据合并实战 2006-5-22
·在Authorware中控制Flash动画 2006-4-10
·Perl简单模块指南 2006-3-6
新近更新文章
·X-Space最吸引网民的八大特色 2006-6-20
·手把手学习X-Space模块设置 打造个性个人门户网站 2006-6-15
·从动网DV7.1Access转换到Discuz4.1 2006-6-15
·Windows版本Discuz!—EasyDiscuz!安装介绍 2006-6-9
·Discuz! 4.10论坛“傻瓜式”安装教程 2006-6-4
·站长网友最满意的6大X-Space功能 2006-5-28
·X-Space技巧:如何在个人博客设置音乐播放 2006-5-28
·来!把我的Blog数据转移到X-Space里 2006-5-22
·X-Space详细图文安装及常见错误解决 2006-5-22
·得心应手 X-Space下的二级域名配置 2006-5-22
首 页 | 软件发布 | 广告联系 | 下载帮助 | 意见反馈 | 网站地图
  CopyRight? 2002-2004 WWW.SXSKY.NET? All Rights Reserved
三湘时空 站长QQ:82675303 Email: