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


59

标题确切地说。我没有足够的运气找到合适的文档来了解-xe在以下用例中的作用:

#!/bin/bash -xe

这些参数是做什么用的,在哪里记录?


您是在谈论传递给BASH二进制文件的参数,还是在谈论BASH脚本语言中的函数和参数?
理查德·凯勒2012年

引用传递给BASH二进制文件的参数,例如:#!/ bin / bash -xe
富有想象力的

Answers:


56

如果您阅读手册页,bash则会在本OPTIONS节顶部找到以下内容:

 文档中记录的所有单字符外壳程序选项
 在以下情况下,可以使用set Builtin命令的说明作为选项:
 外壳程序被调用。另外,bash解释以下选项
 当它被调用...

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

 -e如果管道(可能包含一个
 单个简单命令),用括号括起来的subshel​​l命令,
 或作为命令列表的一部分执行的命令之一,由
 括号(请参阅上面的SHELL GRAMMAR)以非零状态退出。 

 -x扩展每个简单命令后,对于命令,使用大小写
 命令,选择命令或命令的算术,显示
 PS4的扩展值,然后是命令及其
 扩展的参数或关联的单词列表。

换句话说,-e使每当有错误返回错误时shell便立即退出(这在shell脚本中通常用作故障保护机制),并-x启用脚本的冗长执行,以便您可以查看正在发生的情况。


10

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

bash -c "help set"

要回答您的问题:

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

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




0

在哪里阅读传递给bash的参数(例如-x和-e)的文档的最佳位置是哪里?我尝试了男子1 bash,但那里似乎没有被覆盖。

阅读basj手册页的OPTIONS部分。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.