Bash脚本无故失败

考古学

我有这个bash脚本(实际上是我自己添加的echo的一部分https://github.com/ddollar/heroku-buildpack-multi/blob/master/bin/compile):

echo "[DEBUG] chmod done"

framework=$($dir/bin/detect $1)

echo "[DEBUG] $framework done"

我在日志中看到:

[DEBUG] chmod done
Staging failed: Buildpack compilation step failed

而且我根本看不到日志中的第二个回声。不幸的是,我对bash知之甚少。在第一种回声执行而第二种回声不执行的情况下,有人可以向我解释吗?我一直认为,无论第二行是否成功,两个回声都应该一直起作用。

pfnuesel

它在您的问题中不可见,但是单击您的链接,它在第三行中显示

set -e

这意味着一旦发生错误,立即停止处理脚本。注释该行,脚本应该贯穿并打印第二条echo语句。

请注意,我没有检查脚本的实际作用,也无法告诉您注释set -e是否确实是好的建议。

来自man set

−e:启用此选项时,任何命令失败(出于第2.8.1节“ Shell错误的后果”中所列的任何原因,或者通过返回大于零的退出状态),Shell应立即退出,并包含以下示例¶:

   1. The failure of any individual command in a multi-command pipeline shall not
      cause the shell to exit. Only the failure of the pipeline itself  shall  be
      considered.

   2. The  −e setting shall be ignored when executing the compound list following
      the while, until, if, or elif reserved word, a pipeline beginning with  the
      !  reserved word, or any command of an AND-OR list other than the last.

   3. If  the exit status of a compound command other than a subshell command was
      the result of a failure while −e was being ignored, then −e shall not apply
      to this command.

  This requirement applies to the shell environment and each subshell environment
  separately. For example, in:

      set -e; (false; echo one) | cat; echo two

  the false command causes the subshell to exit without executing echo one;  how‐
  ever, echo two is executed because the exit status of the pipeline (false; echo
  one) | cat is zero.

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从Bash调用的Python脚本无能为力

来自分类Dev

通知bash脚本无限循环在后台运行

来自分类Dev

Bash脚本无法向mysql发送指令

来自分类Dev

bash脚本无法读取第一行

来自分类Dev

Bash脚本无法执行Go命令

来自分类Dev

Bash脚本无法从PATH执行命令

来自分类Dev

使用“ $ @”时脚本无法识别Bash“ -n”参数

来自分类Dev

脚本无法识别sudo密码并且失败

来自分类Dev

SFTP的期望脚本无法在bash中运行

来自分类Dev

通过SSH远程触发的Bash脚本无法正常工作

来自分类Dev

Bash脚本无法从PATH执行命令

来自分类Dev

PHP脚本无法运行bash脚本。sh:权限被拒绝

来自分类Dev

Bash脚本无法用作cronjob

来自分类Dev

Bash脚本无法从crontab正常运行

来自分类Dev

Shell脚本无缘无故出现问题

来自分类Dev

Bash脚本无法移动文件

来自分类Dev

bash脚本无法识别Ruby宝石

来自分类Dev

Bash脚本无法找到Perl模块

来自分类Dev

Bash脚本无法运行

来自分类Dev

Bash脚本无法执行bash脚本

来自分类Dev

Bash脚本无法正确调用其他脚本

来自分类Dev

bash脚本无法正常工作

来自分类Dev

Bash脚本无法正常工作

来自分类Dev

AJAX启动PHP脚本无故终止

来自分类Dev

Bash脚本无限循环

来自分类Dev

OSX bash脚本无法从cron运行

来自分类Dev

Bash 脚本无法在 Shell 中运行

来自分类Dev

Node.js 脚本无声无息地失败?

来自分类Dev

Bash 脚本无法识别文件