SHELL学习――退出状态、测试(整数\字符串\ 文件\逻辑运算符)

 
退出状态
Linux 系统中,第当命令执行完成后,系统都会有一个退出状态。该退出状态用一整数值表示,用于判断命令运行正确与否。
状态值
含义
0
表示运行成功,程序执行未遇到任何问题
1 125
表示运行失败,脚本命令、系统命令错误或参数传递错误
126
找到了该命令但无法执行
127
未找到要运行的命令
>128
命令被系统强行结束
举例说明:
[root@localhost tmp]# touch exit_exam1
[root@localhost tmp]# echo $?
0
[root@localhost tmp]# dddd
-bash: dddd: command not found
[root@localhost tmp]# echo $?
127
[root@localhost tmp]# rm 999
rm: cannot lstat `999': No such file or directory
[root@localhost tmp]# echo $?
1
[root@localhost tmp]#

测试
Linux shell 命中存在一组测试命令,该组命令用于测试某种条件或某几种条件是否真实存在。测试命令是判断语句和循环语句中条件测试的工具。
整数比较运算符 ( 不适应浮点型数值比较 )
整数比较运算符
描述
 
num1 �Ceq num2
如果 num1=num2, 测试结果为 0
 -eq    =
num1 �Cge num2
如果 num1>=num2, 测试结果为 0
 -ge    >=
num1 �Cgt num2
如果 num1>num2, 测试结果为 0
 -gt    >
num1 �Cle num2
如果 num1<=num2, 测试结果为 0
 -le    <=
num1 �Clt num2
如果 num1<num2, 测试结果为 0
 -lt     <
num1 �Cne num2
如果 num1!=num2, 测试结果为 0
 -ne    !=
举例说明:
[root@localhost ~]# num1=15
[root@localhost ~]# [ "$num1" -eq 15 ]
[root@localhost ~]# echo $?
0
[root@localhost ~]# [ "$num1" -eq 20 ]
[root@localhost ~]# echo $?
1
[root@localhost ~]# first_num=99
[root@localhost ~]# second_num=100
[root@localhost ~]# [ "$first_num" -gt "$second_num" ]
[root@localhost ~]# echo $?
1
 
字符串运算符
字符串运算符
描述
string
测试字符串 string 是否不为空
-n string
测试字符串 string 是否不为空
-z string
测试字符串 string 是否为空
string1=string2
测试字符串 string1 是否与字符串 string2 相同
string1!=string2
测试字符串 string1 是否与字符串 string2 不相同
举例说明:
[root@localhost ~]# string1=""
[root@localhost ~]# test "$string1"
[root@localhost ~]# echo $?
1
[root@localhost ~]# test -n "$string1"
[root@localhost ~]# echo $?
1
[root@localhost ~]# test -z "$string1"
[root@localhost ~]# echo $?
0
 
文件操作符
文件运算符
描述
-d file
测试 file 是否为目录
-e file
测试 file 是否存在
-f file
测试 file 是否为普通文件
-s file
测试 file 的长度是否不为 0
-r file
测试 file 是否是进程可读文件
-w file
测试 file 是否是进程可写文件
-x file
测试 file 是否是进程可执行文件
-L file
测试 file 是否符号化链接
举例说明:
[root@localhost ~]# ls
anaconda-ks.cfg  Desktop  install.log  install.log.syslog  sshd_config
[root@localhost ~]# [ -d install.log ]
[root@localhost ~]# echo $?
1
[root@localhost ~]# [ -e install.log ]
[root@localhost ~]# echo $?
0
[root@localhost ~]# [ -e install1.log ]
[root@localhost ~]# echo $?
1
[root@localhost ~]# [ -w install.log ]
[root@localhost ~]# echo $?
0
 
逻辑运算符
逻辑运算各符
描述
! expression
如果 expression 为假,则测试结果为真
expression1 �Ca expression2
如果 expression1 expression2 同时为真,则测试结果为真
Expression1 �Co expression2
如果 expression1 expression2 中有一个为真,则测试条件为真
逻辑运算的真假表
expr1
expr2
! expr1
! expr2
expr1 �Ca expr2
expr1 �Co expr2
举例说明:
[root@localhost ~]# ls
anaconda-ks.cfg  Desktop  install.log  install.log.syslog  sshd_config
[root@localhost ~]# [ ! -e install.log ]
[root@localhost ~]# echo $?
1             # 说明文件 install.log 不存在为假
[root@localhost ~]# [ -e install.log -a -r install.log ]
[root@localhost ~]# echo $?
0       # 说明文件 install.log 存在且可读
  

你可能感兴趣的:(测试,运算符,退出)