在 bash 中组合 set -eux 和 set-a

在 bash 中组合 set -eux 和 set-a

我有一个通过命令继承的 shell 脚本

#!/usr/bin/env bash 
set -eux

我想开始在必须一致运行的各种 shell 脚本之间共享变量,因此我通常使用此命令导出 .env 中的变量

set -a 
source .env
set +a

组合的语法是否合适:

set -euxa
source .env
set +a

答案1

set命令修改 args 中提供的 shell 属性。它不会修改您未指定的任何属性。这意味着您可以在一次调用中组合设置多个属性set,或者可以通过多次调用获得相同的结果set

这个语法:

set -e
set -u
set -x
set -a

会给你完全相同的结果:

set -euxa

从风格上来说,我建议将在脚本的整个运行时持续存在的属性与临时修改的任何属性分开。对于您的脚本,我建议这样做:

#!/usr/bin/env bash 
set -eux

set -a 
source .env
set +a

相关内容