将 -xe 参数传递给 /bin/bash 有什么作用

ima*_*ive 82 scripting bash

正是标题所说的。我没有太多运气找到合适的文档来查看 -xe 在以下用例中的作用:

#!/bin/bash -xe

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

lar*_*sks 71

如果您阅读手册页,bash您会在该OPTIONS部分的顶部找到以下内容:

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

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

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

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

换句话说,-e每当返回错误时使 shell 立即退出(这通常在 shell 脚本中用作故障保护机制),并-x启用脚本的详细执行,以便您可以看到发生了什么。


Ric*_*ler 14

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

bash -c "help set"
Run Code Online (Sandbox Code Playgroud)

回答你的问题:

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

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