条件测试和捕获信号

一、退出状态

在Linux系统中,无论是命令、脚本还是程序,执行完成退出后都存在退出状态,退出状态通常保存在预定义变量$?中。大多数情况下,预定义变量只会使用两个数字表示命令、脚本和程序的退出状态。

数字0表示命令、脚本或程序成功执行,没有发生错误。

数字1表示在执行过程中发生了某些错误,没有成功执行。

由于退出状态由程序编写者定义,因此退出状态也可能不是0或1,遇到这种情况时,可能需要查阅其说明文件了解具体含义。

说明:虽然退出状态的值可能会有许多,但只要退出状态不是数字0,就可以认为程序、命令发生了错误。

【设置退出状态命令】

在编写较为复杂的脚本时,应该考虑错误捕捉机制,即当脚本中的语句执行出现错误时,脚本能够处理错误。一个简单的例子:如果用户使用脚本没有给出必要的参数,脚本应该能够检查到这个错误,并提示用户。

在脚本中设置退出状态需要使用exit命令,其常见的使用形式及对应的含义如下:

exit 0:表示返回脚本执行成功,无错误返回。这种情况有时也称为返回为真(true)。

exit 1:表示执行失败,有错误返回。这种情况有时也称为返回为假(false)。

除了以上的0和1之外,还可以使用其他一些数字,但只要返回的状态非0,,系统就认为脚本执行失败。

使用exit命令设置退出状态时需要注意,无论脚本执行到何处,只要遇到exit命令,脚本会立即设置退出状态并退出脚本。

注意:函数返回状态命令return与退出状态命令exit的区别:exit直接退出程序,后面不再执行;return只是所在函数返回,后面会继续执行。

二、文件测试

对文件的测试包括两个方面:(1)文件基本测试,包括文件、目录是否存在、文件类型、文件长度等;(2)文件权限测试,包括文件是否可读、可写、可执行等。

1、文件基本测试

文件基本测试大多用在创建文件、目录之前,这样做的目的是让脚本拥有更好的容错性。

【文件测试命令】

文件基本测试常用的命令及其含义如下:

d:测试目标是否存在,并且是一个目录。

f:测试目标文件是否存在,并且是一个普通文件。

L:测试目标文件是否存在,并且是一个链接文件。

b:测试目标文件是否存在,并且是一个块设备文件。

c:测试目标文件是否存在,并且是一个字符设备文件。

e:测试指定文件或目录是否存在。

S:测试目标文件是否存在,并且是一个Socket文件。

p:测试目标文件是否存在,并且是一个FIFO(pipe)文件。

【文件测试命令的格式】

[ -command parameter ]梦想,并不奢侈,只要勇敢地迈出第一步。

条件测试和捕获信号

相关文章:

你感兴趣的文章:

标签云: