用于具有特定间隔和bash计算器的循环

时间:2015-05-22 12:41:57

标签: bash shell

我是bash脚本的新手,因此我有一个非常简单的问题。 我在下面写了一个简单的代码:

#!/bin/bash

    for i in 450 500 550 600 650 700 750 800 850 900 950 1000
        do
            mkdir $i'K'
            cd $i'K'
            sigma=$(echo "scale=5;(8.61734e-05*$i))" | bc)
            cp ../INCAR_default .
            sed 's/_s_/'$sigma'/g' INCAR_default > INCAR
            rm INCAR_default
        done

现在,我有两个问题: 1.如何修改'for循环'的脚本,以便始终保持特定的间隔?例如,这里的间隔是50.我知道脚本的间隔为“1”,但不是特定的间隔。

  1. 如果我运行此脚本,那么我收到以下错误: “(standard_in)1:语法错误”
  2. 任何人都可以同时提供我的查询解决方案吗?

    谢谢!

1 个答案:

答案 0 :(得分:3)

您可以使用C风格的循环

for (( i = 450; i <= 1000; i += 50 )); do
    ....
done

对于第二部分,来自bc的错误消息告诉您它并不喜欢您提供的输入。您似乎有两个),但只有一个(

sigma=$(echo "scale=5;(8.61734e-05*$i))" | bc)