Wie kann ich Mathematica im Batch-Modus über die Kommandozeile ausführen?
- Grundprinzip und Voraussetzungen
- Typische Befehle zum Starten im Batch-Modus
- Typische Vorgehensweise: Ein Skript ausführen
- Ausführen über die Kommandozeile
- Alternative Wege: Input und Output umleiten
- Weitere Optionen und Tipps
- Zusammenfassung
Mathematica bietet die Möglichkeit, Berechnungen und Skripte ohne grafische Benutzeroberfläche im sogenannten Batch-Modus auszuführen. Dies ist vor allem dann nützlich, wenn man lange oder aufwändige Rechenjobs automatisieren möchte oder wenn Mathematica auf einem Server oder in einer Skripting-Umgebung ohne Fensterbetrieb genutzt wird.
Grundprinzip und Voraussetzungen
Im Batch-Modus wird Mathematica über die Kommandozeile gestartet und führt dabei grob gesagt Programme aus, die Sie zuvor geschrieben und als Textdatei abgespeichert haben. Diese Datei kann entweder ein .wl-Skript (Wolfram Language Script) oder eine vollständige Wolfram Language Eingabedatei sein. Um Mathematica im Batch-Modus auszuführen, benötigt man Zugriff auf den geeigneten Befehl in der Kommandozeile, der unterschiedlich je nach Betriebssystem ist.
Typische Befehle zum Starten im Batch-Modus
Unter Windows entspricht der zu verwendende Befehl meistens math oder wolfram, je nach Installation. Unter Linux oder macOS verwendet man zumeist den Aufruf wolfram oder math. Beide starten die Mathematica-Kommandozeilenschnittstelle. Die Unterscheidung ist wichtig, weil math häufig eine reine Kommandozeilenversion ist, während wolfram moderner und mit zusätzlichen Funktionen sein kann.
Typische Vorgehensweise: Ein Skript ausführen
Angenommen, Sie schreiben ein Mathematica-Skript, das einige Befehle enthält. Dieses Speichern Sie als Textdatei, beispielsweise meinScript.wl. Die Datei könnte beispielsweise wie folgt aussehen:
Print ; 2+2 ExitDer wichtige Befehl Exit sorgt dafür, dass Mathematica nach Befehlsausführung automatisch beendet wird, im Batch-Modus sonst wartet das Programm auf weitere Eingaben.
Ausführen über die Kommandozeile
Um dieses Skript im Batch-Modus auszuführen, öffnen Sie das Terminal (unter Windows die Eingabeaufforderung oder PowerShell, unter macOS/Linux das Terminal) und wechseln in das Verzeichnis, in dem sich das Skript befindet.
Der Aufruf kann hierbei beispielsweise so aussehen:
wolfram -script meinScript.wlHier sorgt der Parameter -script dafür, dass Mathematica das Script vollständig ausführt und anschließend beendet. Dabei wird die normale Ausgabekonsole genutzt, d.h. Print-Ausgaben erscheinen in der Kommandozeile.
Alternative Wege: Input und Output umleiten
Eine andere Möglichkeit ist, die Mathematica-Kommandozeilenanwendung direkt zu starten und Dateiumleitungen zu verwenden. Beispielsweise versorgt man Mathematica mit einer Eingabedatei über den Standardinput und nimmt die Ausgabe vom Standardoutput entgegen:
math ergebnis.txtAllerdings ist -script der bequemere und offizielle Weg, da so Ausführung und Ausgabe direkter und besser funktionieren. Wichtig ist auch, dass Sie in Ihrem Skript Exit aufrufen, sonst bleibt Mathematica im interaktiven Modus hängen.
Weitere Optionen und Tipps
Der Befehl wolfram oder math bietet noch weitere Parameter an, zum Beispiel -noprompt um Eingabeaufforderungen zu unterdrücken, oder -noinit um die Initialisierung zu umgehen und Zeit zu sparen. Für komplexere Automatisierungen kann man auch ein Shell-Skript oder Batchdateien verwenden, um mehrere Schriftsdateien hintereinander auszuführen oder Eingaben parametrisiert zu übergeben.
Es empfiehlt sich, in der Dokumentation Ihrer Mathematica-Version das Kapitel über Kommandozeilen- und Batch-Ausführung aufzusuchen, da kleinere Unterschiede zwischen Versionen auftreten können. Die offizielle Dokumentation beschreibt auch die Integration von Mathematica in Shell-Umgebungen genauer.
Zusammenfassung
Mathematica kann im Batch-Modus über die Kommandozeile mit dem Befehl wolfram -script skriptdatei.wl oder math -script skriptdatei.wl gestartet werden. Dies ermöglicht die vollautomatische Ausführung von Wolfram Language Scripten ohne GUI. Die Skriptdatei sollte die Befehle enthalten, die ausgeführt werden sollen, und am Ende ein Exit um den Prozess zu beenden. So lassen sich lange oder wiederkehrende Berechnungen automatisieren und in externe Workflows einbinden.
