【问题标题】:What does -ex option used in bash | #!/bin/bash -ex meanbash 中的-ex 选项有什么作用? #!/bin/bash -ex 意思
【发布时间】:2016-11-15 12:41:07
【问题描述】:

我们使用下面的脚本作为 EC2 实例的用户数据。我不明白-ex 选项的用途是什么?

#!/bin/bash -ex

yum update -y
yum groupinstall -y "Web Server" "MySQL Database" "PHP Support"
service httpd start
chkconfig httpd on

【问题讨论】:

标签: linux bash shell scripting


【解决方案1】:

根据Add tack e x on your bash shebang | #!/bin/bash -ex

Bash 脚本可以在 shebang (#!/bin/bash) 上使用各种选项。更常见的是:'#!/bin/bash -ex'。

-e 如果命令以非零状态退出,则立即退出。
-x 在执行命令时打印命令及其参数。

简而言之,将 -ex 添加到您的 #!/bin/bash 将提供详细的输出,并且如果部分脚本失败,也会立即中止您的脚本。

【讨论】:

    【解决方案2】:

    这只是另一种说法:

    #!/bin/bash 
    
    set -ex # Added line
    
    yum update -y
    yum groupinstall -y "Web Server" "MySQL Database" "PHP Support"
    service httpd start
    chkconfig httpd on
    

    [ bash manual ] 说:

    与 set 内置函数一起使用的所有单字符选项(请参阅 Set Builtin) 可以在调用 shell 时用作选项

    [ set reference ] 说:

    set 允许您更改 shell 选项的值并设置 位置参数,或显示外壳的名称和值 变量。

    -x

    打印简单命令的痕迹,对于命令,case命令,select 命令,以及命令及其参数的算术或 相关单词列表在它们展开之后和之前 执行。 PS4 变量的值被展开,结果 value 在命令及其扩展参数之前打印。

    -e

    如果有管道(请参阅管道),则立即退出,其中可能包含一个 单个简单命令(请参阅简单命令)、列表(请参阅列表)或 复合命令(请参阅复合命令)返回非零状态。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-11-25
      • 1970-01-01
      • 1970-01-01
      • 2012-05-12
      • 1970-01-01
      • 2021-05-22
      • 2011-06-13
      相关资源
      最近更新 更多