预定义变量是shell中预先定义好的一些特殊变量,用户只能使用预定义变量,而不能自己创建新的预定义变量,也不能直接为预定义变量赋值。
所有的预定义变量都是由“$”符合和另外一个符合组成的,其中最常用的预定义变量是$?,$?,用于检查上一条命令的执行状态,如果上一条命令正确执行了,那么$?的值为0,反之如果上一条命令未能正确执行,则$?的值可以是1-255之间的一个任意值。
除了$?之外,另外比较常用的预定义变量还有$#、$0,它们表示的含义如下
$#:表示命令行中位置参数的数量。
$0:表示当前脚本的名称
整数值比较
整数值比较是指根据给定的两个数值,判断第一个是否大于、等于、小于……第二个数,但是在用方括号进行整数值比较时,不能使用传统的=、><等比较符号,可以使用的整数值比较操作符主要有:
-eq:等于
-ne:不等于
-gt:大于
-lt:小于
-le:小于等于
-ge:大于等于
4.条件测试与比较
注意:方括号的左右两侧与条件表达式之间至少需要有一个空格进行分隔。
1.
文件状态测试时指根据给定的路径名称,判断该名称对应的是文件还是目录,或者判断文件是否可读、可执行等,根据所判断的状态不同,在条件表达式中所需要使用不同的测试操作符。
l -d:测试是否是目录
l -f:测试是否为文件
l -c:测试目录或文件是否存在
l -r:测试当前用户是否有读取权限
l -w:测试当前yoghurt是否有写入权限
l -x:测试当前用户是否有执行权限
l -L:测试是否为符合链接文件
5.整数值比较
1 整数值比较是指根据给定的两个数值,判断第一个数是否大于、等于、小于…….第二个数,但是在用方括号进行整数值比较时,不能使用传统的=、<、>等比较符合,这是由于这些传统的符号在shell中都有特定的含义,比如>和<分别表示输出和输入重定向,所有如果使用这些传统符合,必须要在它们前面加上反斜线“\”进行转义,如“\>”,”\<”等。
我们在shell脚本程序进行整数比较时,很少会使用这些传统的比较符合,取而代之的是一些专门的操作符,下面列出一些常用的整数比较操作符。
n -eq:等于
n -ne:不等于
n -gt:大于
n -lt:小于
n -le:小于等于
n -ge:大于等于




