【问题标题】:Bash Script for loop?用于循环的 Bash 脚本?
【发布时间】:2017-10-05 13:03:17
【问题描述】:

这是以前考试中的一个问题中的脚本,我对为什么 I 等于 6 而 J 等于 9 感到困惑。有人可以详细说明吗?

下面是一个小的 bash 脚本。最终回声的输出是什么 陈述?展示你的作品。

 #!/bin/sh
i=0
for a in 9 8 7 6 5 4
do
j=1
for b in 1 2 3 4
do
let "j+=2"
done
let "i+=1"
done
echo "i=$i j=$j"

【问题讨论】:

  • 也请展示你的尝试!
  • 在此处发布您的code,链接不是一个好主意。
  • 你为什么不为我们重写呢?抱歉,我使用的是文本浏览器,无法打开图片...
  • 对我来说一切正常。正确的是,我最后是 6,J 是 9。你期待什么?你有什么不清楚的地方?在 bash 中使用 set -x 运行此脚本。
  • i+=1 循环 6 次,j+=2 循环 4 次,i 从 0 开始,所以在 6 结束,j 从 1 开始,所以在 9 结束。

标签: shell sh


【解决方案1】:

你应该写出代码;

#!/bin/sh

i=0
for a in 9 8 7 6 5 4   # <-  i gets incremented by 1 for each "step" here.
do 
    j=1
    for b in 1 2 3 4   # <-  j gets incremented by 2 for each "step" here.
    do 
        let "j+=2"     # <-  this is where j get incremented
    done
    let "i+=1"         # <-  this is where i get incremented
done
echo "i=$i j=$j"

因此,

  • j 的起始值为 1,并递增 +2(4 次)= 9
  • i 的起始值为 0,然后递增 +1(6 次)= 6

【讨论】:

  • 谢谢,非常感谢
  • @MShaw 没问题。我可以建议您阅读提问指南。 stackoverflow.com/help/asking - StackOverflow 不是一个发布你的作业供其他人解决的论坛 - 但是在这种情况下,我喜欢你的例子的一些事情,当我开始时会帮助我。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-25
  • 1970-01-01
  • 2013-05-18
  • 2013-09-17
相关资源
最近更新 更多