我已经谷歌了一下,但没有找到关于这个组合的解释。
在bash shell脚本的开头,
(我能找到一些关于
在bash shell脚本的开头,
set -eu
是什么意思?(我能找到一些关于
-e
的解释,但没有关于-eu
的解释。)set -eu
是什么意思?-e
的解释,但没有关于-eu
的解释。)set
命令。可以单独设置-e
和-u
,但在调试时通常与-x
组合使用,如set -eux
或在shebang中使用#!/bin/bash -eux
。-e Exit immediately if a pipeline (which may consist of a single simple
command), a list, or a compound command (see SHELL GRAMMAR above), exits
with a non-zero status. The shell does not exit if the command that fails
is part of the command list immediately following a while or until keyword,
part of the test following the if or elif reserved words, part of any
command executed in a && or || list except the command following the final
&& or ||, any command in a pipeline but the last, or if the command's
return value is being inverted with !. If a compound command other than a
subshell returns a non-zero status because a command failed while -e was
being ignored, the shell does not exit. A trap on ERR, if set, is executed
before the shell exits. This option applies to the shell environment and
each subshell environment separately (see COMMAND EXECUTION ENVIRONMENT
above), and may cause subshells to exit before executing all the commands
in the subshell.
-u Treat unset variables and parameters other than the special parameters "@"
and "*" as an error when performing parameter expansion. If expansion is
attempted on an unset variable or parameter, the shell prints an error
message, and, if not interactive, exits with a non-zero status.
-e
选项,当底层命令返回错误代码时,脚本将继续执行。在许多情况下,你可能希望在此时终止脚本的执行。-u
选项可以防止意外使用未定义的变量,例如,如果脚本使用了一个变量$foo
,但在使用之前没有设置它的值,-u
标志将告诉bash停止执行并显示错误信息。 - oleksii
+eu
可以用来撤销-eu
,事情会变得有点混乱 :D - oleksii