http://www.cnblogs.com/MyEyes/archive/2012/01/12/2320529.html

Linux下一条命令或一个进程执行完成会返回一个一个状态码。

0   ===   成功执行

非0 ===  执行过程中出现异常或非正常退出

在Shell脚本中 最后执行的一条命令将决定整个shell脚本的状态. 此外 shell的内部命令exit也可以随时终止shell脚本的执行,返回Shell脚本的状态码

当shell脚本执行结束前 的最后一个命令是不带参数的exit ,那么 shell脚本的最终返回值 就是 exit 语句前一条语句的返回值,根据这个值可以判断脚本成功执行与否。

$? 可以查看 最后一条命令的返回值 该变量可以在shell 脚本中的任何地方使用.

#! /bin/bash
echo "please input the branch you want to compare"
read $MY_BRANCH
for i in $(cat list)
do
git-diff --quiet $MY_BRANCH $i    [--quiet 选项的意思是不要输出比较后各个diff出来的结果]
if [ $? -eq 0 ]        [$? 就是上一条命令执行的状态码]
then
echo $i
fi
done

http://feng.blog.rritw.com/get_exist_status_and_return_value_in_shell.html

在Linux Shell中获取被调用函数的退出状态和返回值

不管是在执行什么样语言编写的程序,都需要获得其被调用函数或程序的退出状态或(及)返回值,以便于我们好根据退出状态或(及)返回值判断当前被调用的函数或程序的执行结果是否成功等,然后好做进一步的处理,如提示用户出错了,还是继续执行等。
这里先就退出状态和返回值做一下名词解释:
退出状态:执行某一函数或者程序之后通过变量”#?”获得的值;
返回值:运行某一函数(或程序)时该函数(或程序)运行过程中所有的输出。
在执行完有返回值的函数时,该返回值就是当前函数的退出状态值,在这种情况下,可以认为两者是相同的。
如下示例:

#!/bin/bash
echo "hello"
echo $?    #查看echo "hello"的退出状态

“$?”只是表示其紧接着的上一行命令的执行结果,它的值是时刻改变的,如果不立即对获取的返回结果进行处理,可以将”$?”赋值给一个变量,以便后面使用,看以下示例:

#!/bin/bash
echo "hello";
helloResult=$?;
echo "baby";
babyResult=$?;
echo $helloResult
echo $babyResult

退出状态一般是用来恒量某个函数或程序是否是正常退出。按照约定,返回”0″表示程序正常退出。返回”非0″表示程序非正常退出。被调用的函数可以是没有返回值的,如果是正常的执行完所有的语句,此时也会认为程序是正常完成,退出状态也会是”0″。
如果被调用的函数或程序有使用”return”返回值,那么”retrun”返回的结果就被认为是程序的退出状态了,如下示例:

#!/bin/bash
function hello(){echo "Hello ";
echo "Baby";
return -1
}
hello
echo $?

输出如下:

$ ./t4.sh
Hello
Baby
255

shell脚本执行返回的状态码相关推荐

  1. python网页查询然后返回结果_python(30) 获取网页返回的状态码,状态码对应问题查询...

    获取访问网页返回的状态码 html = requests.get(Url) respon= html.status_code 以下内容来自于维基百科:点击查看网页 1xx消息 这一类型的状态码,代表请 ...

  2. linux shell脚本攻略_(python)Linux下shell脚本监控Tomcat的状态并实现自动启动步骤...

    今天为大家带来的内容是:(python)Linux下shell脚本监控Tomcat的状态并实现自动启动步骤 本文内容主要介绍了Linux下shell脚本监控Tomcat的状态并实现自动启动的步骤,文章 ...

  3. hive运行mysql脚本_用java代码调用shell脚本执行sqoop将hive表中数据导出到mysql

    1:创建shell脚本 1 touch sqoop_options.sh2 chmod 777 sqoop_options.sh 编辑文件  特地将执行map的个数设置为变量  测试 可以java代码 ...

  4. request-promise 获取返回头信息_http返回的状态码 大全

    00 Continue 继续.客户端应继续其请求101 Switching Protocols 切换协议.服务器根据客户端的请求切换协议.只能切换到更高级的协议,例如,切换到HTTP的新版本协议200 ...

  5. 安卓判断服务器返回的状态码,关于服务器返回的十四种常见HTTP状态码详解

    原标题:关于服务器返回的十四种常见HTTP状态码详解 HTTP状态码 状态码是由3位数字和原因短语组成的(比如最常见的:200 OK),其中第一位数字表示响应类别,响应类别从1到5分为五种 add:其 ...

  6. Nginx学习笔记3:Shell脚本检测Nginx服务状态

    前言 nginx 服务启动后,我们需要对其服务状态进行监控,今天学习过程中了解到一段非常有用的小脚本,不仅可以监控Nginx,也可以用来监控其他服务 脚本 A=`ps -C nginx –no-hea ...

  7. 服务器端返回的状态码是什么意思

    撰写时间:2020年1月3日 星期五 刚学习框架时,我们写的代码路径出错是不是经常能看到404,见得多了自然就知道可能是指定的目录或文件在 Web 服务器上不存在,或者是URL拼写错误.那返回来的40 ...

  8. kettle脚本Linux执行,kettle在linux下面用于shell脚本执行:转换或者作业

    1 将windows下面创建好的转换,放到Linux某一个文件夹下面.如:把0816_em.ktr文件放到/home/cfj/kettle/testdemo下面. 注意里面的数据库用户名和密码可能需要 ...

  9. 服务器返回常见状态码及意义

    状态代码由三位数字组成,第一个数字定义了响应的类别,且有5种可能取值: 1XX:指示信息–表示请求已接收,继续处理 2XX:成功–表示请求已被成功接收.理解.接受 3XX:重定向–要完成请求必须进行更 ...

最新文章

  1. ceph admin socket修改ceph配置文件
  2. 清华大学朱军:深度生成模型、算法和概率编程库(附视频+PPT)
  3. 在Apache的POI XWPFRun对象分隔文本行
  4. Vim - 容易忘记但又比较常用的操作 (之一)
  5. Redis常用命令集
  6. Jquery 提示插件
  7. 阿里云经典网络与Rancher VXLAN兼容性问题
  8. 1、什么是Spring框架,Spring框架有哪些主要模块
  9. C#winform控制textbox输入只能为数字
  10. 微信小程序云开发教程-互联网软件的运作模式
  11. cacti linux io,【cacti】Linux磁盘I/O监控
  12. 网站服务器域名费用入什么科目,企业域名服务费记什么科目
  13. 案例|工业物联网解决方案•工业互联网云平台
  14. 2022城市辅助驾驶赛道陷入“三国争霸”,数据智能助力毫末智行杀出重围?
  15. Kali安装谷歌拼音
  16. VHDL SXT函数
  17. Linux节点释放,关于linux:如何释放Inode的使用量?
  18. 计算机键盘的功能键在哪,台式电脑home键在哪里(有关电脑按键作用介绍)
  19. 汉语编程vs汉语写一元方程
  20. 判断用户输入的数为正数还是负数

热门文章

  1. RxSwift之深入解析如何创建观察者Observer
  2. HarmonyOS之AI能力·实体识别
  3. 数学 —— 巧用进制
  4. 深度学习——02、深度学习入门 1-7
  5. ROS探索总结(五)——创建简单的机器人模型smartcar
  6. sci_loopback_int的例程(中断程序)
  7. 【STM32】GPIO概述
  8. html 问号标签 提示cursor: help,css之cursor,float
  9. 【HDU 3400】Line belt(三分法)
  10. Linux命令(11)—— 给文件增加和减少权限chomod命令