bash ;条件语句回显数字

标签 bash

我即将完成作业脚本的编写,但在思考如何完成最后一部分时遇到了一些困难。

我的问题是在 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/

相关文章:

mysql - 通过 BASH 脚本更新 MYSQL 表给出语法错误

linux - 如果输出字段之一为空,awk 如何打印 "NA"

bash - 使用 awk 删除前导零给出八进制结果

linux - 将一个命令的输出重定向到多个命令

bash - 使用 awk 打印自定义行

bash - 如何在 bash 脚本中屏蔽 pem key 的中线

bash - 编写 bash 脚本以接受来自所有可能方向的参数和输入的最简单方法是什么(类似于 sort -k1 -r)?

regex - Sed:无法替换部分字符串而不替换全部字符串

c - 为什么箭头键会弄乱标准输出?

linux - 从文件中 grep 多个模式并将它们保存到不同的文件中