在bash循环中标记文本文件

时间:2017-01-23 09:02:57

标签: bash

此脚本应通过命令行为程序提供值,并将终端的输出存储在相应的文件中。由于我不能将小数点数作为文件标签的一部分,我打算将每个kappa乘以10000以将它们变成整数并将它们用作标签,但我在代码中做错了我不会#39 ; t知道如何正确。它是如何工作的?谢谢!

#!/bin/bash

for kappa in $(seq 0.0001 0.000495 0.01);
    do
        kappa_10000 = $kappa * 10000;

        for seed in {1..50};
        do
                ./two_defects $seed $kappa > "equilibration_step_seed${seed}_kappa${kappa_10000}.txt";
        done
    done 

1 个答案:

答案 0 :(得分:2)

Bash不执行@Inian指出的浮点数计算。必须调用像bc这样的程序,并且可以将其输出直接存储在变量中,如下所示:

for kappa in $(seq 0.0001 0.000495 0.01)
do 
    kappa_10000=$(echo "$kappa*10000/1" | bc)
    echo kappa_10000
done

终端输出

1
5
10
15
20
25
30
35
40
45
50
55
60
65
70
75
80
85
90
95
100

必须添加/1操作才能使输出成为整数。