我正在编写一个shell脚本,我必须判断环境变量是否已设置,如果未设置,则必须设置它.有没有办法签入shell脚本,不管是否已经设置了环境变量?

推荐答案

[ -z "$VARIABLE" ] && VARIABLE="abc"

if env | grep -q ^VARIABLE=
then
  echo env variable is already exported
else
  echo env variable was not exported, but now it is
  export VARIABLE
fi

我想强调的是,[ -z $VARIABLE ]是不够的,因为你可以有VARIABLE,但它没有出口.这意味着它根本不是一个环境变量.

Linux相关问答推荐

创建守护进程时打开0,1,2描述符

AddressSaniizer随机抛出没有任何解释的SIGSEGV

将十六进制文件名转换为十进制

使用awk命令将以:分隔的两个文件合并的方法

在不编写任何代码的情况下,是否有一个命令可以检索当前 shell 的亲和力中的可用内核数?

Bash 更新 yaml 文件中的图像值

如何在守护进程中使用 popen() 和 pclose() 获取通过管道执行的 shell 命令的正确退出代码?

如何用 Sed 替换 Match 后的 2 个连续行

Linux合并文件

为什么在 Linux 中使用 select

如何有效地使用 grep?

Linux 应用程序分析

无法在 Android Studio 中清理项目

如何在非阻塞套接字上处理 OpenSSL SSL_ERROR_WANT_READ / WANT_WRITE

zsh/bash 上不区分大小写的 Glob

列出当前目录和所有子目录中特定大小的文件

错误:ld.so:无法预加载对象 LD_PRELOAD:忽略

bash中变量名后的2个逗号是什么意思?

如何为 Git 命令设置自动完成功能?

如何在 docker 容器中运行 cron 作业(job)