我正在写一个简单的shell脚本,我有一个奇怪的错误关于“坏数字”。这是我的代码:

status=0
maxRetries=3
retryCount=1
while [[ status == 0 ]] || [[ retryCount -le  maxRetries ]]
do
    ....
    retryCount=$((retryCount+1))
done

据我所见,我已经正确地将maxretries和retrycount声明为整数,所以我不明白为什么它会抱怨while语句中的数字不正确。
有人知道吗?

最佳答案

statusretryCountmaxRetries是字符串,而不是数字。您需要用$sigil扩展这些参数。或者,可以使用不需要sigil的算术表达式。

while (( status == 0 || retryCount < maxRetries ))

08-07 12:06