Ich möchte ein Skript schreiben, das zuerst ein Programm startet und es dann anweist, eine Reihe von Befehlen auszuführen und dann zu beenden. Gehen wir mit einem Beispiel.
Ich habe dieses Skript geschrieben myscript.sh
und es funktioniert nicht so, wie ich es möchte. Führen Sie einfach gnuplot aus und warten Sie, bis es beendet ist. Führen Sie dann die anderen Befehle aus. was offensichtlich zu Fehlern führt.
#!/bin/bash
gnuplot
plot sin(x)
pause -1
quit
Ich denke, es ist klar, was ich versuche zu tun; Wenn nicht, dann lass es mich in den Kommentaren wissen.
command-line
bash
scripts
gnuplot
Mihir Gadgil
quelle
quelle
-p
in diesem Beispiel nicht viel von Nutzen ist; Wenn Sie im Terminal die Eingabetaste drücken, wird gnuplot beendet und das Plotfenster wird bis auf den Befehl quit vollständig nicht mehr interaktiv. Der Ausgang des 3. kommt und geht (überhaupt nicht sichtbar). Der letzte erzeugt eine Ausgabe, aber da Gnuplot sofort geschlossen wird, ist das Plotfenster wieder nicht interaktiv (außerdem zeigt es ein winziges 1-Quadrat-cm-Plot). Alsopause -1
ist es notwendig.Ein Weg ist mit
-persist
:Eine andere Möglichkeit, wenn Sie Daten vorverarbeiten müssen, ist ein Bash
Here Document
(sieheman bash
):quelle
expect
...chmod u+x myscript.gnu
und direkt ausführen../myscript.gnu
Nur eine Notiz, die Sie im Bereich vergessen[]
haben :set yrange [$minval:$maxval]
.Erwartet, wie auf den
man
Seiten erläutert , diegnuplot
Eingabe einer Befehlsdatei in einer sogenannten Batch-Sitzung . Sie können zB die Zeileplot sin(x)
in eine Datei schreibenmyplot
und dann ausführengnuplot myplot
.Wenn Sie die Befehlsdatei wie in Ihrem Skript weglassen, erhalten Sie eine interaktive Sitzung .
quelle
Die hier erwähnte doc-Methode ist sowohl bei Gnuplot als auch bei vielen anderen Programmen sehr nützlich. Durch die Verwendung von Shell-Variablen in den Gnuplot-Befehlen im Here-Doc können Sie Ihre Plots mit Eingaben über die Befehlszeile Ihres Shell-Skripts parametrisieren. Indem Sie die Dinge cagily einrichten, können Sie Plots aus riesigen Mengen von "Big Data" in Massenproduktion erstellen. Ich habe in genau dieser Strukturdynamik-Finite-Analyse-Läufe mit genau dieser Methode konsistent aussehende Streudiagramme mit 20.000 bis 80.000 Punkten pro Diagramm erstellt. Es ist eine sehr mächtige Methode.
quelle
Dies könnte helfen
Klicken Sie hier für weitere Details
quelle