擅长:python、mysql、java
<p>我是在试图弄清楚由于<code>set -e</code>而中止的脚本的退出状态时发现这篇文章的。答案在我看来并不明显;这就是答案。基本上,<em><code>set -e</code>中止命令(例如shell脚本)的执行,并返回失败命令的退出状态代码(即内部脚本,而不是外部脚本)</em></p>
<p>例如,假设我有shell脚本<code>outer-test.sh</code>:</p>
<pre><code>#!/bin/sh
set -e
./inner-test.sh
exit 62;
</code></pre>
<p><code>inner-test.sh</code>的代码是:</p>
<pre><code>#!/bin/sh
exit 26;
</code></pre>
<p>当我从命令行运行<code>outer-script.sh</code>时,我的外部脚本将以内部脚本的退出代码终止:</p>
<pre><code>$ ./outer-test.sh
$ echo $?
26
</code></pre>