我想根据位置创建一个环境变量,并将该环境变量名称附加到日志文件中。例如,我有多个AWS账户,并根据该账户希望变量名标识该账户。我也想有条件地运行它,而不是编写多个脚本。
如果account是此echo或printf帐户,请在执行代码之前将帐户名称设置为该变量。
aws_bsd='lab'
aws_csd='engineering'
aws_efg='chemistry'
答案 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
一样的操作。但是我相信这是最简洁的方法。