提问人:user2315104 提问时间:12/29/2021 最后编辑:taniususer2315104 更新时间:1/21/2023 访问量:5257
如何使用while循环检查变量是否为空
How to use a while loop to check if a variable is empty or not
问:
我正在使用以下代码来检查变量是否为空。
我正在使用 while 循环,因为我需要在变量为空时继续循环。当变量设置为某个值时,循环应退出。
MR=[]
while [ -z "$MR" ]
do
echo "in while loop"
sleep 10s
MR="hi"
done
出于某种原因,它根本没有执行。原因是什么?
答:
5赞
KamilCuk
12/29/2021
#1
原因是什么?
MR
变量不为空,它包含两个字符和 .[
]
$ MR=[]
$ echo "$MR"
[]
因为它不为空,所以返回非零,所以从不执行。[ -z "$MR" ]
while
而是将变量设置为 en 空字符串。
MR=
# or, does the same, but for some is more readable:
MR=""
# or
MR=''
评论
[]
不是空数组。它是一个文字字符串,它不是空字符串。[]
MR=()
MR=()
MR
MR=()
基本上等同于。 仍将使用 进行测试,例如,将其显示为 未定义。declare -a MR
MR
[[ -v MR ]]
declare -p MR
declare -a MR=()