bash - 如何检查环境变量是否存在并获取其值?

标签 bash shell

<分区>

我正在编写一个 shell 脚本。在这个 shell 脚本中,我有一个变量,它要么采用默认值,要么采用环境变量的值。但是,环境变量不必存在。

例如,假设在运行脚本之前,我执行了以下操作:

export DEPLOY_ENV=dev

如何告诉脚本搜索此环境变量,并将其值存储在脚本内的变量中。而且,如果这个环境变量不存在,我如何告诉脚本,存储一个默认变量?

最佳答案

[ -z "${DEPLOY_ENV}"] 检查 DEPLOY_ENV 的长度是否等于零。所以你可以运行:

if [[ -z "${DEPLOY_ENV}" ]]; then
  MY_SCRIPT_VARIABLE="Some default value because DEPLOY_ENV is undefined"
else
  MY_SCRIPT_VARIABLE="${DEPLOY_ENV}"
fi

# or using a short-hand version

[[ -z "${DEPLOY_ENV}" ]] && MyVar='default' || MyVar="${DEPLOY_ENV}"

# or even shorter use

MyVar="${DEPLOY_ENV:-default_value}"

关于bash - 如何检查环境变量是否存在并获取其值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39296472/

相关文章:

bash - 仅将 STDOUT 的最后一行重定向到文件

bash - 如何找到两个日期之间的天数差异?

linux - 如何在 Linux 中将 "tee"与 "source"命令一起使用?

shell - 将非 PNG 图像复制到 X 剪贴板

linux - 使用子进程调用 shell 脚本不会运行 shell 脚本中的所有命令

linux - sed - 删除两个空行之前的文本

linux - 为 node.js 安装 NPM 时出错

api - 使用 qt 重新创建的 Windows Shell 上下文菜单

shell - 如何在 Makefile 中定义子例程

bash - 在 block bash 脚本中写入多行