shell脚本中set -e作用_生命如歌,代码如诗的博客-程序员秘密

技术标签: shell脚本  运维  linux  set -e  

shell中脚本运行中可能出现命令执行失败的情况,如果执行失败对后续有影响那么就应该退出脚本,不继续往下执行。set -e 命令就可以避免操作失败还继续往下执行的问题。
set命令的-e参数:
        linux系统自带的说明是:“Exit immediately if a simple command exits with a non-zero status.”,也就是说,在"set -e"之后出现的代码,一旦出现了返回值非零,整个脚本就会立即退出
测试demo

#!/bin/sh
set -e 
cat helloWrold.sh
echo $?
echo "hello,wrold"

在这里插入图片描述

脚本找不到helloWrold.sh,操作未成功,所以直接退出脚本,下面看一下去掉set -e的结果:

#!/bin/sh
#set -e 
cat helloWrold.sh
#echo $?
echo "hello,wrold"

在这里插入图片描述
显然去掉set -e后,虽然cat操作未执行成功,但是脚本还是可以继续向下执行,不会主动退出脚本。

关于exit 0 exit 1以及echo $?说明
exit 0—是正常退出的命令
exit 1—是非正常退出的命令
echo $? 获取上次命令执行的结果,如果是0就是正常执行,如果非0就是执行出现了异常

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/ma950924/article/details/122555636

智能推荐

cuda 原子锁&多线程操作&通用原子操作_atomicexch_Limiao_123的博客-程序员秘密

经历了很多奇奇怪怪的bug,整理一下。先描述要做的事情以及怎么做:在项目中,空间中有200w+的点,需要映射到一个grid_map的600*600的网格中,落入到同一个格子的点需要进行一些计算获得一个值。对于格子与格子之间是并行的,但格子之中的点需要设计为串行。所以在计算某个格子中的点时,需要将格子的值保护起来,只允许一个线程(点)计算并改变。这里就用到了cuda的通用原子操作。也许有人会问,cuda提供了一些原子操作函数,能不能直接用呢?cuda提供的原子函数适用于简单的单一变量判断加减,而对于需要复

练习:压缩字符串和逆序英文语句_压缩英文句子_三杯白开水的博客-程序员秘密

压缩字符串aaaabbbbcdefffffghhhh压缩成a4b4cdef4gh4// 压缩字符串// aaaabbbbcdefffffghhhh// a4b4cdef4gh4#include <stdio.h>void yasuo();void yasuo(char *pStr){ int len=0; if(pStr==NULL) return ;...

jqueryui icons图标说明_ui-icon-arrow-1-nw_haiwei_sun的博客-程序员秘密

http://i.80tvb.com/jqueryui-icons-list/在使用jQueryUI的button时真心感叹这东使用起来是多方便的,这里把jQueryUI默认样式里的Icons图标列了出来,以方便需要时查阅。ui-icon-carat-1-n ui-icon-carat-1-ne ui-icon-carat-1

Unity MoveTowards移动到指定位置_会思考的猴子的博客-程序员秘密

其实下面的用 DoTween去实现是很容易的,transform.DOMove(transform.position + mMoveDirection, mMoveSpeed,).SetEase(Ease.Linear).OnComplete(changeMovingState);using UnityEngine;public class Test : MonoBehavi...

oracle ITL(事务槽)的理解_didige5994的博客-程序员秘密

oracle ITL(事务槽)的理解 一、ITL描述:ITL(Interested Transaction List)是Oracle数据块内部的一个组成部分,位于数据块头(block header),itl由xid,uba,flag,lck和scn/fsc组成,...

基于CentOS 7.2的CDH 6.3.2 Flink编译源码_SmallScorpion的博客-程序员秘密

基于CentOS 7.2的CDH6.3.2离线安装https://blog.csdn.net/qq_40180229/article/details/108755530基于CentOS 7.2的CDH 6.3.2完整集群添加https://blog.csdn.net/qq_40180229/article/details/108756561基于CentOS 7.2的CDH 6.3.2 Hadoop配置https://blog.csdn.net/qq_40180229/article/details

随便推点

CentOS7使用network-manager无UI连接l2tp_l2tp manager without gui_血如铅汞气凝霜的博客-程序员秘密

安装插件network-manager-l2tp 更换yum源 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo_bakcurl -O http://mirrors.aliyun.com/repo/Centos-7.repomv Centos-7.repo /etc/yum.repo...

有哪些值得推荐的Python学习网站?_python数据分析学习网站_秃头雨雨的博客-程序员秘密

我想学习如何使用 Python 制作网站。但是 Python 学习资源要我花几个月的时间学习语法,然后才能进入我感兴趣的领域。

一天完成把PC网站改为自适应!原来这么简单!_weixin_34306676的博客-程序员秘密

http://www.webkaka.com/blog/archives/how-to-modify-a-web-page-to-be-responsive.html 一天完成把PC网站改为自适应!原来这么简单!作者:Kaka    时间:2015-8-27 11:26:9    浏览:5279    评论:8网站自适应,很多人都认为是很高级需要很多时间去实现的东西,不愿意...

'django-admin' 不是内部或外部命令,也不是可运行的程序 或批处理文件。问题处理_django-admin' 不是内部或外部命令,也不是可运行的程序 或批处理文件。_swordboy_fire的博客-程序员秘密

在windows的cmd中输入django-admin startproject project时报错:'django-admin' 不是内部或外部命令,也不是可运行的程序 或批处理文件。这是因为系统缺少django的环境变量。首先找到Python36-12\Scripts\django-admin.exe的位置然后在环境变量的path中追加django-admin.exe得路径,如“;C...

初识MySQL(非常详细)_北方的南先生的博客-程序员秘密

mySQL简介MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件。MySQL是一种关系数据库管理系统,关系数据库将数据保存在不...

推荐文章

热门文章

相关标签