将 -xe 参数传递给 /bin/bash 会做什么

将 -xe 参数传递给 /bin/bash 会做什么

正如标题所述。我找不到合适的文档来查看 -xe 在以下用例中的作用:

#!/bin/bash -xe

这些参数起什么作用以及在哪里记录?

答案1

如果您阅读手册页,bash您会在该部分顶部发现以下内容OPTIONS

所有单字符 shell 选项均记录在
 内置命令 set 的描述可以用作选项,当
 shell 被调用。此外,bash 解释以下选项
 当它被调用时...

set如果您稍后阅读手册页中该命令的文档,您会发现:

-e 如果管道(可能由
 单个简单命令)、括号内的子 shell 命令、
 或作为命令列表的一部分执行的命令之一,其中包含
 大括号(参见上面的 SHELL GRAMMAR)以非零状态退出。

 -x 扩展每个简单命令后,对于命令,case
 命令、选择命令或命令的算术、显示
 PS4 的扩展值,后跟命令及其
 扩展参数或关联单词列表。

换句话说,-e只要返回错误,就会立即退出 shell(这在 shell 脚本中通常用作故障安全机制),并-x启用脚本的详细执行,以便您可以看到正在发生的事情。

答案2

在控制台上键入以下内容以获取 BASH 参数的解释:

bash -c "help set"

回答你的问题:

-e如果命令以非零状态退出,则立即退出。

-x在执行命令时打印它们及其参数。

答案3

来自手册页

在 set 内置命令描述中记录的所有单字符 shell 选项都可以在调用 shell 时用作选项。

那么看看设置内置

答案4

我使用优秀Bash 参考手册作为 Bash 语言的一站式文档。我发现它比手册页更有用。与您相关的部分(-e、-x 开关的描述)可以在这里找到:设置内置

相关内容