我可以检查变量是否为空:
var=("")
if [[ -z "${var}" ]];
then
echo "variable is empty"
else
echo "variable is not empty"
fi
输出:
variable is empty
但是当我尝试将其应用于数组中的元素时,没有任何输出:
array=("")
for i in ${array[@]}
do
if [[ -z "${i}" ]];
then
echo "element in array is empty"
else
echo "element in array is not empty"
fi
done
答案 0 :(得分:0)
由于没有元素,因此不会进入for循环。这就是为什么没有输出写入stdout的原因。
这样想:
while(there is record)
loop
由于您的数组中没有记录,它会直接退出
检查此代码
array=("1" "2" "" "3")
for i in "${array[@]}"
do
if [[ -z "${i}" ]];
then
echo "element in array is empty"
else
echo "element in array is not empty : $i"
fi
done