我即将完成作业脚本的编写,但在思考如何完成最后一部分时遇到了一些困难。
我的问题是在 while 循环内;它根据 IF 语句打印出数字,输入的数字始终是偶数。
IF 不通过 else/elif 连接,因为如果该数字适用于 1 个以上的语句,则应该能够打印出来。
如果不满足任何 IF 条件,我想在每个循环上打印 $starting,但如果满足,我不想打印它。谁能看到如何做到这一点?
while [[ $starting -lt $ending ]]; do
if [ $((starting %7)) -eq 0 ]
then
echo "$starting red"
fi
if [ $((starting % 11)) -eq 0 ]
then
echo "$starting green"
fi
if [ $((starting % 13)) -eq 0 ]
then
echo "$starting blue"
fi
starting=$((starting + 2))
done
最佳答案
跟踪您是否已经在变量中完成了您想要做的事情:
while [[ $starting -lt $ending ]]; do
handled=0
if [ $((starting %7)) -eq 0 ]
then
echo "$starting red"
handled=1
fi
if [ $((starting % 11)) -eq 0 ]
then
echo "$starting green"
handled=1
fi
if [ $((starting % 13)) -eq 0 ]
then
echo "$starting blue"
handled=1
fi
if ! (( handled ))
then
echo "$starting didn't match anything"
fi
starting=$((starting + 2))
done
关于 bash ;条件语句回显数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22724514/