此脚本应通过命令行为程序提供值,并将终端的输出存储在相应的文件中。由于我不能将小数点数作为文件标签的一部分,我打算将每个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
答案 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
操作才能使输出成为整数。