设置多个变量以调用条件语句

时间:2019-11-25 06:46:49

标签: bash amazon-web-services

我想根据位置创建一个环境变量,并将该环境变量名称附加到日志文件中。例如,我有多个AWS账户,并根据该账户希望变量名标识该账户。我也想有条件地运行它,而不是编写多个脚本。

如果account是此echo或printf帐户,请在执行代码之前将帐户名称设置为该变量。

aws_bsd='lab'
aws_csd='engineering'
aws_efg='chemistry'

1 个答案:

答案 0 :(得分:0)

您可以使用realpath获取当前正在运行的脚本的绝对路径,并据此做出决定。

#!/usr/bin/env bash

_this_script_path="$(realpath "$0")"  # script path
_this_dir_path="$(dirname "$_this_script_path")"  # scripts' parent directory path

_account_1_path="/home/acc1"
_account_2_path="/home/acc2"

if [[ "$_this_dir_path" == "$_account_1_path" ]]; then
    echo "- setting up account 1"
    # do account 1 specific stuff
    # export VAR1="var1_value"
    # ...
elif [[ "$_this_dir_path" == "$_account_2_path" ]]; then
    echo "- setting up account 2"
    # do account 2 specific stuff
    # ...
fi

注意:

我不确定realpath是否符合POSIX标准,但是我发现它广泛可用。如果您没有它,可以使用其他方法来完成realpath一样的操作。但是我相信这是最简洁的方法。