如何检查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中的空环境变量[重复]的主要内容,如果未能解决你的问题,请参考以下文章
Linux编程 13 (系统环境变量位置, 环境变量持久化)