【发布时间】:2020-02-28 09:29:12
【问题描述】:
我有一个变量数组。我想使用 for 循环检查变量是否有值。
我将值放入循环中,但 if 条件失败
function check {
arr=("$@")
for var in "${arr[@]}"; do
if [ -z $var ] ; then
echo $var "is not available"
else
echo $var "is available"
fi
done
}
name="abc"
city="xyz"
arr=(name city state country)
check ${arr[@]}
对于以上内容,我得到了所有可用
预期输出是
name is available
city is available
state is not available
country is not available
【问题讨论】:
-
var在您的循环中采用值 name、city、state 和 country。 [ -z ... ] 测试参数的长度是否为零。这些单词的长度都不为零,因此每次都采用else分支。