我有一个通过命令继承的 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