程序在编写阶段经常会产生各种问题,一些高级语言都有相对于的调试工具。shell 在错误和异常处理方面也有对应的工具,利用工具在配合 set -e ,我们能更好的解决语法问题。本文介绍 set -e 的相关用法。
在上一篇《Shell Bash 的错误处理》中,我们可以看到这样处理显得非常麻烦,容易疏忽。set -e
从根本上解决了这个问题,它使得脚本只要发生错误,就终止执行。
#!/usr/bin/env bash set -e foo echo bar
执行结果如下。
$ bash script.sh script.sh:行4: foo: 未找到命令
可以看到,第4行执行失败以后,脚本就终止执行了。
set -e
根据返回值来判断,一个命令是否运行失败。但是,某些命令的非零返回值可能不表示失败,或者开发者希望在命令失败的情况下,脚本继续执行下去。这时可以暂时关闭set -e
,该命令执行结束后,再重新打开set -e
。
set +e command1 command2 set -e
上面代码中,set +e
表示关闭-e
选项,set -e
表示重新打开-e
选项。
还有一种方法是使用command || true
,使得该命令即使执行失败,脚本也不会终止执行。
#!/bin/bash set -e foo || true echo bar
上面代码中,true
使得这一行语句总是会执行成功,后面的echo bar
会执行。
-e
还有另一种写法-o errexit
。
set -o errexit
: » Shell bash 脚本 set -e 教程
原创文章,作者:端木书台,如若转载,请注明出处:https://blog.ytso.com/252573.html