iis服务器助手广告广告
返回顶部
首页 > 资讯 > 操作系统 >shell脚本返回值及其使用场景的实现
  • 784
分享到

shell脚本返回值及其使用场景的实现

shell脚本返回值shell返回码 2022-06-04 23:06:17 784人浏览 八月长安
摘要

应用场景 在一些应用中(比如jenkins),嵌入了shell脚本,系统通过shell脚本的返回值来判断执行结果,如果返回值非0,则发生了执行错误,需要中止执行,这在使用单个命令时没有问题。然而,在shell (A)脚

应用场景

在一些应用中(比如jenkins),嵌入了shell脚本,系统通过shell脚本的返回值来判断执行结果,如果返回值非0,则发生了执行错误,需要中止执行,这在使用单个命令时没有问题。然而,在shell (A)脚本又调用了shell脚本文件(B )时,当被调用的shell脚本B执行过程中发生了错误时,系统不会认为B有问题,而是继续往下执行。这样就会掩盖了问题。

解决

在被调用的shell脚本B中返回错误代码,当被调用的shell脚本B中发生错误时,捕捉该错误代码,然后返回该错误代码,这样系统就能捕获被调用的脚本B的错误代码,而及时中止执行。

1、实现步骤:

(1)获取执行结果代码。使用“$?”获取。

(2)加入执行执行结果代码检测函数,若发现结果代码非0,则返回脚本的执行代码。使用“exit [代码]”表示。

2、示例:

Shell A:


#do something ...
/home/test/B.sh
#do something ...

Shell B(/home/test/B.sh):


check_result()
{
 echo input params:$1

 if [ $1 != 0 ]; then
  echo wahaha
  exit $1
 fi
}

ls /
echo 1.result:$?
check_result $?

cat /xxxyyy
v1=$?
echo 2.result:{v1}
check_result $v1

check_result()为定义的检测函数,当命令的返回码非0时,shell脚本停止执行,返回代码。
v1=$? 保存命令执行返回码,其为临时变量。需要保存留作后用。

附录:

1、shell 返回码

表格 D-1. "保留的"退出码

退出码的值 含义 例子 注释
1 通用错误 let "var1 = 1/0" 各种各样的错误都可能使用这个退出码, 比如"除0错误"
2 shell内建命令使用错误(Bash文档上有说明) 很少看到, 通常情况下退出码都为1
126 命令调用不能执行 程序或命令的权限是不可执行的
127 "command not found" 估计是$PATH不对, 或者是拼写错误
128 exit的参数错误 exit qJDCAsbDo3.14159 exit只能以整数作为参数, 范围是0 - 255(见脚注)
128+n 信号"n"的致命错误 kill -9 脚本的$PPID $? 返回137(128 + 9)
130 用Control-C来结束脚本 Control-C是信号2的致命错误, (130 = 128 + 2, 见上边)
255* 超出范围的退出状态 exit -1 exit命令只能够接受范围是0 - 255的整数作为参数

2、shell返回码与函数返回码、命令返回码的区别

  • shell返回码,标识整个脚本的执行结果状态,用“exit 返回码”表示。
  • 函数返回码,标识一个函数执行结果状态,用“return 返回码”表示。
  • 命令返回码,标识一个命令的执行结果状态,在命令执行后,紧跟着获取返回码,用"$?"获取。

到此这篇关于shell脚本返回值及其使用场景的实现的文章就介绍到这了,更多相关shell脚本返回值内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

--结束END--

本文标题: shell脚本返回值及其使用场景的实现

本文链接: https://www.lsjlt.com/news/21063.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • shell脚本返回值及其使用场景的实现方法
    小编给大家分享一下shell脚本返回值及其使用场景的实现方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!应用场景在一些应用中(比如Jenkins),嵌入了she...
    99+
    2023-06-09
  • Redis中lua脚本实现及其应用场景
    目录1. Redis Lua脚本概述2. Redis Lua脚本的优势3. Redis Lua脚本的应用场景4. Redis Lua脚本的使用方法5. Java中使用redis的lua脚本5.1. 添加Redis依赖 在...
    99+
    2023-04-20
    Redis lua脚本 Redis lua
  • shell脚本返回值可以使用什么参数实现
    这篇文章主要介绍shell脚本返回值可以使用什么参数实现,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!shell脚本的返回值可以使用return参数,但是return只能返回整数类型的值。因此实现比较复杂的功能的话s...
    99+
    2023-06-09
  • 怎么在shell脚本中执行python脚本并接收其返回值
    这篇文章主要介绍“怎么在shell脚本中执行python脚本并接收其返回值”,在日常操作中,相信很多人在怎么在shell脚本中执行python脚本并接收其返回值问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎...
    99+
    2023-06-09
  • mybatis返回map结果及@MapKey使用的场景实例分析
    本篇内容介绍了“mybatis返回map结果及@MapKey使用的场景实例分析”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!mybatis返...
    99+
    2023-06-28
  • 如何用shell脚本实现监控shell脚本的执行流程及变量的值
    本篇内容主要讲解“如何用shell脚本实现监控shell脚本的执行流程及变量的值”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何用shell脚本实现监控shell脚本的执行流程及变量的值”吧!...
    99+
    2023-06-09
  • Redis调用Lua脚本及使用场景快速掌握
    目录一、阅读本文前置条件二、为什么需要Lua脚本三、学点Lua语法3.1.一个简单的例子3.2.仔细看下Lua脚本里的内容3.3. 复杂点的例子四、Lua脚本预加载五、一个修改 JS...
    99+
    2024-04-02
  • 常用的CSS display属性取值及其应用场景
    掌握CSS display属性的常见取值及其应用场景,需要具体代码示例 CSS(Cascading Style Sheets)是一种用于描述HTML文档样式的标记语言,其中display属性是非常重要的一个属性。display属...
    99+
    2024-02-02
    flex布局
  • shell如何实现for循环、循环变量值付给其他shell脚本
    小编给大家分享一下shell如何实现for循环、循环变量值付给其他shell脚本,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!本文主要将在shell中如何编写for循环,并将循环变量作为下个shell脚本的参数。shell...
    99+
    2023-06-09
  • Java开发中Shell函数的重要性及其应用场景
    在Java开发中,Shell函数是非常重要的工具。它可以帮助开发人员完成一些常规的任务,如自动化部署、文件操作、网络通信等等。本文将介绍Shell函数的基本概念、应用场景以及具体的演示代码。 一、Shell函数的基本概念 Shell函数是...
    99+
    2023-06-15
    shell 函数 path
  • java中的方法返回值使用泛型,实现灵活的返回值类型
      使用Mybatis框架的时候,想封装一个底层JDBC控制器,用于提供和Mybatis交互的增删改查接口(公用的接口),但由于公用的查询方法可能是用户自定义的任意一个和表对应的java bean类型,所以要考虑怎么样给调用者返回正确的返回...
    99+
    2023-09-02
    mybatis java spring
  • mybatis返回map结果集@MapKey使用的场景分析
    目录mybatis返回map结果集@MapKey使用场景使用id作为map的keMap的value为Map,一条记录对应一个Map使用name作为map的key mybat...
    99+
    2024-04-02
  • TP5 模型更新的返回值、返回值的判断以及所使用的SQL
    TP5 模型更新主要使用静态方法 update 和动态方法 save  静态方法 update 直接使用模型类静态调用,例如 User 模型类更新主键为1的用户的 username 为 a 方式一 $data = ['id' =...
    99+
    2023-09-06
    开发语言 php ThinkPHP
  • TP5 模型查询的返回值、返回值的判断以及所使用的SQL
    单条查询 使用 静态方法 get  或者 动态方法 find  静态方法 get 直接使用模型类静态调用,例如 User 模型类获取主键为1的用户 User::get(1); 返回值 返回模型类的实例 举例 获取主键为1的用户 $us...
    99+
    2023-09-02
    开发语言 php Thinkphp
  • PHP 函数返回值的类型有哪几种,各自的使用场景是什么?
    php 函数可以返回各种数据类型的值,包括标量类型 (bool、int、float、string、null)、复合类型 (array、object) 和特殊类型 (mixed、void)...
    99+
    2024-04-15
    数据类型 php 键值对
  • 怎么用vbscript脚本实现返回IP配置数据
    这篇文章主要为大家展示了“怎么用vbscript脚本实现返回IP配置数据”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“怎么用vbscript脚本实现返回IP配置数据”这篇文章吧。用以返回配置数据...
    99+
    2023-06-08
  • 探索Golang在现实世界中的应用场景及价值
    Golang的应用领域:探索它在现实世界中的应用价值,需要具体代码示例 引言:Go是一种近年来备受关注的编程语言,它的设计目标是提供一个简单、高效和可靠的解决方案。自从2009年由Google首次推出以来,G...
    99+
    2024-01-20
  • 如何实现Shell脚本制作的终端会话回放功能脚本
    这篇文章主要介绍“如何实现Shell脚本制作的终端会话回放功能脚本”,在日常操作中,相信很多人在如何实现Shell脚本制作的终端会话回放功能脚本问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何实现Shell...
    99+
    2023-06-09
  • 怎么使用shell脚本实现ssh登录
    使用shell脚本实现SSH登录可以通过以下步骤实现:1. 创建一个新的shell脚本文件,比如`login.sh`。2. 在脚本文...
    99+
    2023-09-22
    shell ssh
  • 在springmvc中使用controller如何实现返回值
    这篇文章将为大家详细讲解有关在springmvc中使用controller如何实现返回值,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。使用@RequestBody 比如代码如下:@...
    99+
    2023-05-31
    springmvc controller roller
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作