【问题标题】:Can I remove the $ in bash C-style for loop?我可以删除 bash C 风格 for 循环中的 $ 吗?
【发布时间】:2021-08-25 01:33:50
【问题描述】:

见过有人使用以下 for 循环

for (( i = 0; i <= $length; i++ ))

我可以省略双括号中的$ 符号来引用变量length吗?

【问题讨论】:

  • 如果 $length 是这样定义的
  • @Han :是的,因为你是在数字上下文中。

标签: bash for-loop


【解决方案1】:

你当然可以这样做:

length='10'

for (( i = 0; i <= length; i++ ))
do 
       echo "I = $i"
done

输出:

I = 0
I = 1
I = 2
I = 3
I = 4
I = 5
I = 6
I = 7
I = 8
I = 9
I = 10

【讨论】:

    【解决方案2】:

    是的,事实上,ShellCheck encourages it

    【讨论】:

      【解决方案3】:

      由于你的 shell 解释器是 bash,如果你的长度是已知的,我建议你使用一个称为 bash 序列表达式的简洁功能:

      for each in {0..10}
      do
        echo $each
      done
      

      【讨论】:

      • 你测试了吗? (提示:它不起作用)
      • 你是对的@KamilCuk,我错误地认为这有效。我编辑了我的答案,考虑了一个已知的长度值。
      猜你喜欢
      • 1970-01-01
      • 2013-12-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-26
      • 2021-08-23
      • 1970-01-01
      相关资源
      最近更新 更多