![So rufen Sie gnuplot für verschiedene Skripte unabhängig voneinander auf](https://rvso.com/image/97247/So%20rufen%20Sie%20gnuplot%20f%C3%BCr%20verschiedene%20Skripte%20unabh%C3%A4ngig%20voneinander%20auf.png)
ich verwende GNUplot, um aus Datenpunkten Zahlen zu erstellen. GNUplot arbeitet mit einfachen Skripten, die einfache Parameter/Variablen enthalten, wie den Bereich der x- oder y-Achse, Einstellungen für Linienfarben und ähnliches. Wenn ich eines dieser Skripte aufrufe, dann:
gnuplot script1.gpl
es funktioniert gut, aber wenn ich laufe
gnuplot *.gpl
Beim Ausführen für alle Dateien im aktuellen Verzeichnis habe ich Probleme, da einige der Einstellungen von einem Skript ins nächste übertragen werden. Das liegt wahrscheinlich daran, dass gnuplot die Parameter nicht zurücksetzt und wenn ich sie im folgenden Skript nicht explizit überschreibe, sind die Einstellungen immer noch da. Deshalb habe ich versucht, es mit find anders auszuführen:
find . -name '*.gpl' -exec gnuplot {} \;
aber ich bekomme wieder die gleichen problematischen Ergebnisse. Was ich also brauche, ist ein Befehl, der für jede Datei denselben Befehl ausführt, aber so, als ob er für jede Datei manuell aufgerufen würde.
Antwort1
Ich würde erwarten, find
dass es mit einem einzigen Aufruf funktioniert. Wenn keine Zwischendateien erstellt werden, würde ich vorschlagen, ein Bash-Präfix (oder ein anderes Shell-Präfix) hinzuzufügen, um die Ausführung in einer Sub-Shell zu erzwingen. Oder Sie können Folgendes versuchen:
for i in *.gpl
do
( gnuplot "$i" )
done
Die Klammern erzwingen eine Unter-Shell, aber ich denke nicht, dass dies erforderlich sein sollte.