【问题标题】:how to check Empty environment variable in bash [duplicate]如何检查bash中的空环境变量[重复]
【发布时间】: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 语句将永远为真,因为变量是空的,即使它被设置了
  • 是的,这就是我面临的问题。你能帮我正确的语法吗??
  • 请看答案解释

标签: linux bash shell


【解决方案1】:

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

if [ -z ${ABC+x} ]

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

这个表达式:

if [[ -z "$ABC" ]]

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-28
    • 1970-01-01
    • 2012-02-26
    相关资源
    最近更新 更多