我在终端中设置了一个无值的环境变量。
setenv ABC
现在,我想检查我的bash脚本是否设置了此变量。
#!/bin/bash
ABC_USAGE=0
if [[ -z "$ABC" ]] ; then
ABC_USAGE=$((ABC_USAGE+1))
fi
echo $ABC_USAGE
仅当终端中设置了$ ABC而没有任何值时,我才想增加$ ABC_USUAGE值。无论如何,我的代码正在增加此值。这不是预期的结果。请帮助。
答案 0 :(得分:1)
使用它代替您正在使用的if表达式
if [ -z ${ABC+x} ]
如果未设置变量,并且设置了条件,则条件为true。
此表达式:
if [[ -z "$ABC" ]]
仅检查变量是否分配了任何值,或者变量是否为空
如果仅设置变量,并且变量没有赋值,它将始终为真。