我被困在一个部分,我不明白为什么,让我粘贴我的代码:
local correctId=false
echo $ticketMessage
read deviceId
until [[ $deviceId =~ [0-9]+ && correctId = true ]]; do
if [ ! -e $baseDevicesPath"/$deviceId" ]; then
echo $deviceError
correctId=false
else
correctId=true
fi
if [[ ! $deviceId =~ [0-9]+ ]]; then
echo $ticketMessage
fi
read deviceId
done
echo "I DONT COME HERE?"
如果 deviceId 和 correctId 都为真,它应该退出 until 循环并继续吗?但它没有,知道我在这里做错了什么吗?
最佳答案
你只是有一个简单的错字。您在您的情况下缺少 correctID 前面的 $
:
local correctId=false
echo $ticketMessage
read deviceId
until [[ $deviceId =~ [0-9]+ && $correctId = true ]]; do
if [ ! -e $baseDevicesPath"/$deviceId" ]; then
echo $deviceError
correctId=false
else
correctId=true
fi
if [[ ! $deviceId =~ [0-9]+ ]]; then
echo $ticketMessage
fi
read deviceId
done
echo "NOW YOU WILL END HERE"
关于linux - 直到循环与 if 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29470635/