我差不多为编作编写了一个脚本,但在考虑如何完成最后一部分时遇到了一些麻烦。
我的问题是在一个while循环中;它根据IF语句打印出数字,输入的数字将始终为偶数。
IFs没有通过else / elif连接,因为如果该数字适用于超过1个语句,则该数字应该能够打印出来。
如果它不满足任何IF条件,我想在每个循环上打印$,但是如果它确实如此,我不想打印它。谁能看到怎么做?
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
答案 0 :(得分:3)
跟踪您是否已在变量中完成了您想要做的事情:
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
答案 1 :(得分:2)
在最后添加另一个if,检查以前的if语句是否都为真。 if !(starting%7==0 or starting%11==0 or starting%13==0) => echo starting