退出状态
在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 –eq num2
如果num1=num2,测试结果为0
 -eq    =
num1 –ge num2
如果num1>=num2,测试结果为0
 -ge    >=
num1 –gt num2
如果num1>num2,测试结果为0
 -gt    >
num1 –le num2
如果num1<=num2,测试结果为0
 -le    <=
num1 –lt num2
如果num1<num2,测试结果为0
 -lt     <
num1 –ne 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 –a expression2
如果expression1和expression2同时为真,则测试结果为真
Expression1 –o expression2
如果expression1和expression2中有一个为真,则测试条件为真
逻辑运算的真假表
expr1
expr2
! expr1
! expr2
expr1 –a expr2
expr1 –o 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存在且可读

  

转载于:https://blog.51cto.com/76287/1093274

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

  1. Shell编程——退出状态(if语句判断某个命令的退出状态)

    以下内容源于C语言中文网的学习与整理,如有侵权,请告知删除. 一.退出状态 (1)不管是 Bash 内置命令,还是外部的 Linux 命令,还是自定义的 Shell 函数,当它运行结束或者退出时,都会 ...

  2. Shell程序退出状态码的命令详解

    在本篇文章当中主要给大家介绍了一些常见的程序退出的状态码!并且给出一下例子帮助大家仔细理解,并且使用C语言和python语言实现获取子进程退出时候的退出状态码. 程序退出状态码 前言 在本篇文章当中主 ...

  3. Bash中的管道输出和捕获退出状态

    我想执行Bash中长时间运行的命令,都捕获它的退出状态,并且发球它的输出. 所以我这样做: command | tee out.txt ST=$? 问题在于变量ST捕获了tee而不是命令的退出状态. ...

  4. Linux shell 学习笔记(8)— 使用结构化命令(if-then 语句、数值比较、字符串比较、文件比较、case 语句)

    1. 使用 if-then 语句 最基本的结构化命令就是if-then语句.if-then语句有如下格式. if command then ​ commands fi 或者 if command; t ...

  5. 第七章 shell学习之退出、测试、判断及操作

    退出状态 $?记录了上一个命令的退出状态: 0 运行成功 1~125 运行失败 126 找到命令但无法执行 127 未找到要运行的命令 >128 命令被系统强制结束 测试 两种方式: test ...

  6. 实验四:文件状态测试--动态检测指定文件的状态信息,当文件的大小发生改变时,给出提示信息,并继续前进检测。当文件的大小的变化次数或持续检查无变化次数达到一定值时,退出检查--操作系统原理和实践

    实验目的 熟悉UNIX的基本SHELL程序设计方法,包括: 命令行参数检测 变量设置 文件状态检测与特定信息读取 程序运行控制 实验内容 编写一个SHELL程序,动态检测指定文件的状态信息,当文件的大 ...

  7. Linux Shell学习笔记:exit退出状态代码

    inux提供$?特殊变量来保存最后一条命令执行结束的退出状态.执行完一条命令后,立即执行echo$?,可以查看最后一条命令的退出状态值. 正常的情况下,命令成功执行完成的退出状态是0,如果非0,则命令 ...

  8. Linux shell 学习笔记(7)— 构建基本脚本(变量、重定向、管道、状态码)

    1. 使用多个命令 如果要两个命令一起运行,可以把它们放在同一行中,彼此间用分号隔开. $ date ; who Mon Feb 21 15:36:09 EST 2014 Christine tty2 ...

  9. Shell 编程4(退出,测试,判断)

    1 退出状态 定义 在Linux系统中,每当命令执行完成后,系统都会返回一个退出状态.该退出状态用一整数值表示,用于判断命令运行正确与否.退出状态通常保存在预定义变量$?中. 若退出状态值为0,表示命 ...

最新文章

  1. 物理机_双机调试_资料
  2. svn trunk branches tags 的用法
  3. mysql 通过sock来登陆
  4. Cortex M3寄存器组
  5. .NET Core中使用结果过滤器ResultFilter统一结果返回封装
  6. Spring ClassPathXmlApplicationContext
  7. 201571030316/201571030314 《小学四则运算练习软件需求说明》结对项目报告
  8. spring-kafka、kafka-client 和springboot的版本对应关系
  9. [转]三阶魔方神程序
  10. About The Quaternion 有关四元数
  11. win11在dev渠道升级怎么保留原来的文件 windows11渠道升级保留原文件的方法步骤
  12. css文字在图片下方_【HTML+CSS】文字和图片保持同一水平线的三种方式
  13. Linux上的arping命令介绍
  14. 浅析Java设计模式——观察者模式
  15. windows bat更改系统时间 同步internet时间
  16. 安装黑群晖找不到局域网电脑_组建家庭存储群晖NAS(一)——详细安装篇
  17. 解密Animate.css之CSS3动画实现方式大全源码(6星级)
  18. 解决error while loading shared libraries: xxx.so.x类似问题办法和错误原因
  19. nginx的安装部署
  20. Face Attention Network: An Effective Face Detector for the Occluded Faces

热门文章

  1. 危害企业IT系统最严重的五个安全威胁
  2. HDFS简单介绍及用C语言訪问HDFS接口操作实践
  3. Java虚拟机监控指标及监控配置
  4. 【原创】Python 源文件编码解读
  5. (LeetCode 21)Merge Two Sorted Lists
  6. Windows Embedded Compact 7网络编程概述(上)
  7. android 虚拟机快捷键中英列表
  8. 把委托说透(4):委托与设计模式
  9. Leetcode PHP题解--D27 620. Not Boring Movies
  10. Spring 是如何解决并发访问的线程安全性问题的