【问题标题】:looping through a script setting循环脚本设置
【发布时间】:2014-02-05 15:27:26
【问题描述】:

我有一个脚本,它的选项之一是从 0 到 1 的数字。我想测试这些不同的设置做了什么,所以我想遍历所有设置。我想用这个生成数字:

for ((i=0; i <= 10; i += 1)); do echo "scale=1; ${i}/10"| bc; done

但是,当我尝试此操作时,bc 在设置之前不会评估scale=1; ${i}/10,因此我最终使用scale=1; ${i}/10 而不是我想要的实际数字:

for ((i=0; i <= 10; i += 1)); do Myscript --input testdata --setting "scale=1; ${i}/10"| bc; done

【问题讨论】:

    标签: bash unix for-loop numbers


    【解决方案1】:

    如果您想将其作为文字包含在命令中,则需要将 echo "scale=1; ${i}/10" | bc 替换为:

     for ((i=0; i <= 10; i += 1)); do
       Myscript --input testdata --setting $(echo "scale=1; ${i}/10"| bc)
     done
    

    但是,执行以下操作会容易得多:

     for i in 0 0.{1..9} 1; do
       Myscript --input testdata --setting $i
     done
    

    【讨论】:

      【解决方案2】:

      试试这个循环:

      for ((i = 0; i <= 10; i++ )); do
          Myscript --input testdata --setting "$(bc -l <<< "scale=1; ${i}/10")"
      done
      

      【讨论】:

        猜你喜欢
        • 2023-03-06
        • 2019-01-05
        • 2021-08-16
        • 2016-04-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多