For-Schleife in Shell-Script - fügen Sie breakline in der csv-Datei
Ich versuche, einen for
Schleife in ein shell-Skript.
Ich bin das ausführen eines Befehls aus einer text-Datei. Ich möchte die Ausführung jedes Befehls 10 mal und fügen Sie einige Statistiken in eine csv-Datei. Nachdem dieser Befehl ausgeführt wurde, möchte ich bis zum start des nächsten, SONDERN stellen einen Zeilenumbruch in der CSV-Datei nach dem ersten Befehl, der gemacht wurde, 10-mal.
Ist das folgende richtig:
#Function processLine
processLine(){
line="$@"
for i in 1 2 3 4 5 6 7 8 9 10
do
START=$(date +%s.%N)
echo "$line"
eval $line > /dev/null 2>&1
END=$(date +%s.%N)
DIFF=$(echo "$END - $START" | bc)
echo "$line, $START, $END, $DIFF" >> file.csv 2>&1
echo "It took $DIFF seconds"
echo $line
done
}
Danke an alle für jede Hilfe
UPDATE
Er die Schleife korrekt, aber ich kann Sie nicht zu fügen Sie einen Zeilenumbruch nach jedem Befehl wird 10 mal ausgeführt.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nur hinzufügen eine Zeile "
echo >> file.csv
" nachdone
? Oder wollen Sie nur eine leere Zeile zwischen jedem block von 10? Dann könnten Sie Folgendes tun:Ansonsten möchten Sie vielleicht, um ein Beispiel zu geben von der gewünschten Ausgabe und der Ausgabe-Sie sind jetzt zu bekommen.
Sieht es vernünftig. Tut es das, was Sie es haben wollen?
Könnte man vereinfacht einige Dinge, z.B.
könnte nur
wenn ENDE und ANFANG sind ganze zahlen, und es gibt keine Notwendigkeit, die Dinge in die Variablen, wenn Sie nur gehst, um Sie zu benutzen, sobald.
Wenn es nicht tun, was Sie wollen, Bearbeiten Sie die Frage, das problem zu beschreiben (was Sie es tun und was Sie lieber haben, es zu tun).