我正在使用以下代码来检查变量是否为空。
我使用 while 循环,因为我需要在变量为空时继续循环。当变量被设置为一个值时,循环应该退出。
MR=[]
while [ -z "$MR" ]
do
echo "in while loop"
sleep 10s
MR="hi"
done
Run Code Online (Sandbox Code Playgroud)
由于某种原因,它根本没有执行。是什么原因?
是什么原因?
MR变量不为空,它包含两个字符[和]。
$ MR=[]
$ echo "$MR"
[]
Run Code Online (Sandbox Code Playgroud)
因为它不为空,[ -z "$MR" ]返回非零,所以while永远不会被执行。
而是将变量设置为空字符串。
MR=
# or, does the same, but for some is more readable:
MR=""
# or
MR=''
Run Code Online (Sandbox Code Playgroud)