Dieses Skript sollte dem Programm Werte über die Befehlszeile geben und die Ausgabe des Terminals in den entsprechenden Dateien speichern. Da ich eine Dezimalpunktnummer nicht als Teil der Bezeichnung der Datei angeben kann, beabsichtige ich, jedes Kappa mit 10000 zu multiplizieren, um sie in Ganzzahlen umzuwandeln und sie als Beschriftungen zu verwenden, aber ich habe es im Code falsch gemacht und tue es nicht weiß, wie man es richtig macht. Wie funktioniert es? Vielen Dank!Kennzeichnung von Textdateien in der Bash-Schleife
#!/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
Das erste, was herausspringt, ist Zeile 5, 'kappa_10000 = $ kappa * 10000'. Platziere in Bash keine Leerzeichen um das Gleichheitszeichen. Außerdem rufst du den Mathe-Teil falsch an. 'kappa_10000 = $ ((kappa * 10000))' – Guest
Ein interessantes und umfangreiches Cross-Site-Duplikat [hier] (http://unix.stackexchange.com/questions/40786/how-to-do-integer-float-calculations) -in-Bash-oder-andere-Sprachen-Frameworks). – Aserre
Es ist sehr wichtig, was du über Räume um das Gleichheitszeichen gesagt hast! Das habe ich auch beim Spielen am Terminal bemerkt! Aber Sie können keine Gleitkommaarithmetik in bash ausführen. Danke Gast –