如何检查bash中的空环境变量[重复]

Posted

技术标签:

【中文标题】如何检查bash中的空环境变量[重复]【英文标题】:how to check Empty environment variable in bash [duplicate] 【发布时间】:2019-01-17 22:41:08 【问题描述】:

我在终端中设置了一个没有值的环境变量。

setenv ABC

现在我想检查我的 bash 脚本是否设置了这个变量。

#!/bin/bash        

ABC_USAGE=0

if [[ -z "$ABC" ]] ;  then
  ABC_USAGE=$((ABC_USAGE+1))
fi
 echo $ABC_USAGE

我想增加 $ABC_USUAGE 值,只有在终端中设置了 $ABC 而没有任何值。无论如何,我的代码正在增加这个值。这不是预期的结果。请帮忙..

【问题讨论】:

即使你使用 just set 来设置变量,据我所知 -z 只检查它是否为空 我将它设置在脚本之外的终端中。并想检查脚本内部。这个变量没有值。 那么 if 语句将永远为真,因为变量是空的,即使它被设置了 是的,这就是我面临的问题。你能帮我正确的语法吗?? 请看答案解释 【参考方案1】:

使用 this 而不是您正在使用的 if 表达式

if [ -z $ABC+x ]

如果没有设置变量,这将评估为无,如果变量将被设置,则条件将为真。

这个表达式:

if [[ -z "$ABC" ]]

只检查变量是否赋值或变量是否为空

如果您只是设置变量并且该变量没有分配任何值,它将始终为真。

【讨论】:

以上是关于如何检查bash中的空环境变量[重复]的主要内容,如果未能解决你的问题,请参考以下文章

在 Bash 中更改只读环境变量 [重复]

linux环境变量

Linux编程 13 (系统环境变量位置, 环境变量持久化)

如何使用sudo将环境变量导出到后台进程? [重复]

OSX And​​roid Studio 的 gradle 无法读取 .bash_profile 环境变量 [重复]

bash shell中的环境变量