-- Start

每个 Linux 命令,脚本或函数都有一个退出状态,它用来指示该命令,脚本或函数是否执行成功。0 代表成功,其他值(1-255) 代表失败。

退出状态   描述
1-125    命令执行失败
2        命令使用错误,如参数传递不正确
126      命令不可执行
127      找不到命令
128-255  外部命令执行失败
256      由于一个信号,命令终止

对于函数来说,我们可以使用 return 语句来返回退出状态,如果一个函数没有 return 语句,默认返回函数中最后执行语句的的退出状态。对于脚本来说,我们可以使用 exit 语句来返回退出状态,如果一个脚本没有 exit 语句,默认返回脚本中最后执行语句的的退出状态。有一点需要特别注意,当脚本中的一条命令执行失败时,整个脚本并不会停止运行,所以对于可能出错的命令,我们最好检查它的退出状态,我们可以通过变量 $? 来得到它的退出状态。下面是一个简单的例子。

#!/bin/ksh  grep test test.txt > /dev/null;exit_code=$?;
if [[ $exit_code -ne 0 ]]; then  print "command failed."exit 1;
fi

事实上,我们可以把命令直接写在 if 语句中,如下:

#!/bin/ksh  if grep test test.txt > /dev/null; then  print "command success.";
elseprint "command failed.";exit 1;
fi

如果每条语句都这么检查退出状态,那么你的脚本会很长,其实,我们还可以这么写。

#!/bin/ksh  # 利用逻辑运算符的短路特性
grep test test.txt > /dev/null && print "command success."
grep test test.txt > /dev/null || print "command failed.";exit 1

-- 更多参见: ksh 精萃

-- 声 明:转载请注明出处

-- Last Updated on 2015-09-29
-- Written by ShangBo on 2015-09-29
-- End

ksh 命令退出状态相关推荐

  1. 安装脚本退出,并显示错误:命令“ x86_64-linux-gnu-gcc”失败,退出状态为1

    本文翻译自:setup script exited with error: command 'x86_64-linux-gnu-gcc' failed with exit status 1 When ...

  2. bash之流程控制for循环及bash命令退出和退出状态码

    一.for循环定义: 将一段代码反复执行:----->进入条件;------> 退出条件; 二.语法格式: for 变量名 in LIST do statement1 ... done f ...

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

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

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

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

  5. shell命令执行完的退出状态详解+if语句的定义方法

    文章目录 退出状态的原理 $?的作用 退出状态的原理 $?的作用 1.先执行一条命令,再去echo $?查看数字 2.一般情况下0表示上一条命令执行正确,非0表示错误(错误原因可以查$?的值) 1.2 ...

  6. linux退出脚本命令,【Unix/Linux.Shell Script】退出状态,exit命令

    每一条命令,不管是内置,shell函数,还是外部的,当它退出时,都会返回一个小的整数值给引用它的程序,这是程序的退出状态. 在shell下执行程序时,有许多方式可以取出程序的退出状态. 退出状态值 以 ...

  7. linux获取命令的返回值,Shell $?:获取函数返回值或者上一个命令的退出状态

    $?是一个特殊变量,用来获取上一个命令的退出状态,或者上一个函数的返回值. 所谓退出状态,就是上一个命令执行后的返回结果.退出状态是一个数字,一般情况下,大部分命令执行成功会返回0,失败返回1,这和C ...

  8. linux里返回状态命令行,Shell $?获取函数返回值或者上一个命令的退出状态

    $? 是一个特殊变量,用来获取上一个命令的退出状态,或者上一个函数的返回值. 所谓退出状态,就是上一个命令执行后的返回结果.退出状态是一个数字,一般情况下,大部分命令执行成功会返回 0,失败返回 1, ...

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

      退出状态 在Linux系统中,第当命令执行完成后,系统都会有一个退出状态.该退出状态用一整数值表示,用于判断命令运行正确与否. 状态值 含义 0 表示运行成功,程序执行未遇到任何问题 1-125 ...

最新文章

  1. 校园管理系统需求分析文档
  2. 帕斯卡命名法 pascal命名法
  3. java kafka 集群消费_kafka集群简单生产者消费者实例
  4. 虚拟主机不支持mysql_虚拟主机能用mysql么
  5. ddr2的上电顺序_关于内存的插入顺序的问题
  6. Log4j、Log4j 2、JUL、JCL 、SFL4J 、Logback 与 Lombok 的使用
  7. GARFIELD@01-25-2005
  8. Gnome 快捷键汇总
  9. alsa driver--card
  10. 深度学习常用框架和基础模型
  11. kali 破解压缩包密码
  12. 详解云计算中的业务敏捷性
  13. 【附源码】Python计算机毕业设计民宿客房管理系统
  14. 多“维”优化——前端高并发策略的更深层思考
  15. ADA程序实例(面向对象特性之多态)
  16. 【模型】【课程笔记】01+02+03 金融风险管理导论
  17. 满江红票房破6亿,你觉得好看吗?
  18. Excel 2010 VBA 入门 095 数据处理之用数组实现分列
  19. 两个电阻的并联与串联
  20. python 领英爬虫

热门文章

  1. Plantuml类图用法
  2. (UVA1395)Slim Span(A)
  3. 帝国cms搜索php分页,帝国cms灵动标签分页的实现方法
  4. iframe中加入html,HTML中IFRAME标签的使用
  5. MIS迭代一:增删改查功能测试
  6. [问题]假定网络中的路由器B的路由表有如下的项目(这三列分别表示“目的网络”、“距离”和“下一跳路由器”):
  7. 改进YOLOv7系列:首发结合最新Centralized Feature Pyramid集中特征金字塔,通过COCO数据集验证强势涨点
  8. Netstat命令使用方法
  9. Canal Java 入门与使用
  10. 报错:<generator object <genexpr> at 0x7fa9adc46eb0>