提问人:mikqzz 提问时间:10/27/2023 更新时间:10/27/2023 访问量:37
我的 bash 脚本没有打印任何东西。更具体地说,它没有进入 if 循环
My bash script isn't printing anything. More specifically it is not entering the if loop
问:
我试图只打印奇数 14 到 49。但是,我似乎无法进入 if 循环并且没有数字或正在打印我的“Inside if”语句。
我包含了 print 语句来查看我的代码中发生了什么。运行代码时,语句“Inside for loop”打印 4 次,这是 for 循环迭代的预期次数。所以我的for循环工作正常。但是,基于既没有打印数字也没有打印“Inside if”的事实。我没有进入我的 if 循环。
#!/bin/bash
for (( count=14; count<=49; count+=5 ))
do
echo "inside for loop"
if [ $(($count%2)) -ne 0 ]; then
echo $count
echo "inside if"
fi
let count=$(($count+5))
done
我能够使用相同的逻辑和 if 语句通过 while 循环来完成此操作,所以我不确定为什么它的行为不符合我的预期:
#!/bin/bash
let count=14
while [ $count -le 49 ];
do
if [ $(($count%2)) -ne 0 ]; then
echo $count
fi
let count=$(($count+5))
done
我的任务要求我使用 for 循环。请帮忙,谢谢!
答:
2赞
Loocid
10/27/2023
#1
你正在加倍努力,因为你是在表达式内部和循环的末尾这样做的。因此,您每个循环添加 10 个,这意味着计数永远不会是奇数。count = count + 5
for
在第一个脚本中删除,它将按预期工作。let count=$(($count+5))
评论
(( ... ))
if (( (count%2) != 0 ))
while (( count <= 49 ))