set -e 的作用

#!/bin/bash
set -e
command 1command 2...
exit 0-----------------------

-----------------------------------

Every script you write should include set -e at the top. This tells bash that it should exit the script if any statement returns a non-true return value. The benefit of using -e is that it prevents errors snowballing into serious issues when they could have been caught earlier. Again, for readability you may want to use set -o errexit.

你写的每个脚本都应该在文件开头加上set -e,这句语句告诉bash如果任何语句的执行结果不是true则应该退出。这样的好处是防止错误像滚雪球般变大导致一个致命的错误,而这些错误本应该在之前就被处理掉。如果要增加可读性,可以使用set -o errexit,它的作用与set -e相同。

Using -e gives you error checking for free. If you forget to check something, bash will do it for you. Unfortunately it means you can‘t check $? as bash will never get to the checking code if it isn‘t zero. There are other constructs you could use:

使用-e帮助你检查错误。如果你忘记检查(执行语句的结果),bash会帮你执行。不幸的是,你将无法检查$?,因为如果执行的语句不是返回0,bash将无法执行到检查的代码。你可以使用其他的结构:

[plain] view plain copy
command  
if [ "$?"-ne 0]; then   
    echo "command failed";   
    exit 1;   
fi   
could be replaced with
能够被代替为
[plain] view plain copy
command || { echo "command failed"; exit 1; }   
or
或者
[plain] view plain copy
if ! command; then  
     echo "command failed";   
    exit 1;   
fi

What if you have a command that returns non-zero or you are not interested in its return value? You can use command || true, or if you have a longer section of code, you can turn off the error checking, but I recommend you use this sparingly.

如果你有一个命令返回非0或者你对语句执行的结果不关心,那你可以使用command || true,或者你有一段很长的代码,你可以关闭错误检查(不使用set -e),但是我还是建议你保守地使用这个语句。

时间: 2024-08-10 19:11:24

set -e 的作用的相关文章

@jsonignore的作用

作用是json序列化时将java bean中的一些属性忽略掉,序列化和反序列化都受影响. 如下: package com.hzboy.orm; import java.util.List; import javax.persistence.CascadeType; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.FetchType; import javax.pe

配置虚拟域名,hosts文件起作用

快速打开hosts方法 开始->运行->system32->回车 当前路径文件夹drivers\etc\hosts hosts文件起作用,目前楼主知道有两个可能原因 1.刷新dns cmd里面运行 ipconfig /flushdns 2.没配置前访问了一次域名,配置完之后浏览器没重启.所以不起作用 重新启动浏览器或者换一个浏览器

Linux中的环境变量配置文件及其作用

登录相关的配置文件: /etc/profile 范围:对所有用户生效 作用: a.定义USER变量 b.定义LOGNAME变量 c.定义MAIL变量 d.定义PATH变量 e.定义HOSTNAME变量 f.定义HISTSIZE变量 g.定义umask值 i.调用/etc/profile.d/*.sh文件 /etc/profile.d/*.sh 范围:对所有用户生效 说明:这是一族sh文件,没个都会被调用 例如: /etc/profile.d/lang.sh 作用:调用/etc/sysconfg/

表单的作用

①input的作用分为:单选按钮.文本框.密码框.复选按钮.隐藏表单域.文本选择框.图片按钮.普通按钮.提交按钮.重置按钮 ②select的作用:可创建单选或多选菜单,含有<option>标签 在HTML5中的新属性:1.autofocus属性            值autofocus                     规定在页面加载后文本区域自动获得焦点: 2.disabled                        disabled                      

shell中各种括号的作用

小括号里是命令大括号是变量值   一.小括号,圆括号() 1.单小括号 () ①命令组.括号中的命令将会新开一个子shell顺序执行,所以括号中的变量不能够被脚本余下的部分使用.括号中多个命令之间用分号隔开,最后一个命令可以没有分号,各命令和括号之间不必有空格. ②命令替换.等同于`cmd`,shell扫描一遍命令行,发现了$(cmd)结构,便将$(cmd)中的cmd执行一次,得到其标准输出,再将此输出放到原来命令.有些shell不支持,如tcsh. ③用于初始化数组.如:array=(a b

VMware Tools的安装及其作用(redhat5.5为例)

VMware Tools是VMware虚拟机中自带的一种增强工具,相当于VirtualBox中的增强功能(Sun VirtualBox Guest Additions),是VMware提供的增强虚拟显卡和硬盘性能.以及同步虚拟机与主机时钟的驱动程序. 只有在VMware虚拟机中安装好了VMware Tools,才能实现主机与虚拟机之间的文件共享,同时可支持自由拖拽的功能,鼠标也可在虚拟机与主机之前自由移动(不用再按ctrl+alt),且虚拟机屏幕也可实现全屏化. 在vm上安装完redhat系统后

磁盘阵列RAID的功能作用介绍

RAID是一个我们经常能见到的名词.但却因为很少能在实际环境中体验,所以很难对其原理能有很清楚的认识和掌握.RAID是英文Redundant Array of Independent Disks的缩写,中文简称为独立磁盘冗余阵列.RAID就是一种由多块硬盘构成的冗余阵列.虽然RAID包含多块硬盘,但是在操作系统下是作为一个独立的大型存储设备出现.上海天盾数据恢复中心的专家告诉我们,利用RAID技术于存储系统的好处主要有以下三种: 1.通过把多个磁盘组织在一起作为一个逻辑卷提供磁盘跨越功能; 2.

Atitit.获取主板与bios序列号获取硬件设备信息&#160;&#160;Wmi&#160;wmic&#160;的作用

Atitit.获取主板与bios序列号获取硬件设备信息  Wmi wmic 的作用 1 获取硬件核心基础核心基础Wmi1 2 其他资料2 3 Wmic WMI 命令行接口2 4 Atitit.获取主板与bios序列号2 5 参考3 1 获取硬件核心基础核心基础Wmi WMI,是Windows 2K/XP管理系统的核心:对于其他的Win32操作系统,WMI是一个有用的插件.WMI以CIMOM为基础,CIMOM即公共信息模型对象管理器(Common Information Model Object 

PLM在工业4.0中的作用

1 PLM支撑个性化定制 支撑个性化定制是工业4.0的特征之一.在工业4.0时代,个性化定制不像现在买汽车,只有颜色.型号等非常有限的选项,而是涉及到关键零件,如发动机. 选零件本质上已经是一种设计了.用户不是设计师,而设计是个专业性很强的活.要解决这个矛盾,就要用软件来支撑.这个软件就是PLM.PLM提供合适的部件,能保证用户所选的部件能与其他部件一起正常运转,且保证产品质量.从这种意义上说,PLM就像傻瓜相机:自动对焦.自动调光圈,让普通人也能照出近乎专业的照片. 2 PLM支撑智能生产 生

JSP 的内置对象及方法,动作和作用,常用指令

JSP 的内置对象及方法:JSP 共有以下9 种基本内置组件:request:用户端请求,此请求会包含来自GET/POST 请求的参数:response:网页传回用户端的回应:pageContext:网页的属性是在这里管理:session:与请求有关的会话期,可以存贮用户的状态信息:application:servlet 正在执行的内容:out:用来传送回应的输出:config:servlet 的构架部件,用于存取servlet 实例的初始化参数:page:JSP 网页本身:exception: