Bash-Skript zum aufeinanderfolgenden Aufrufen zweier Funktionen, jede mit ihrem eigenen Argument

Bash-Skript zum aufeinanderfolgenden Aufrufen zweier Funktionen, jede mit ihrem eigenen Argument

Es gibt viele ähnliche Fragen, aber ich kann weder in den Bash-Skripthandbüchern noch in den Anleitungen dazu ein Beispiel für das finden, was ich suche (ich bin sicher, dass es da ist, aber es ist ein dickes Buch ...).

Was ich will, ist Folgendes:

Ich habe eine Datei, die ich aufrufe: ./runMe.sh, deren Inhalt folgender ist:

callMaxima() {
maxima -b "$1"
}
callSINGULAR() {
/opt/local/bin/Singular -b "$2"
}
callMaxima $1;
callSINGULAR $2;

Ich möchte, dass Maxima einige Dinge tut, die durch das erste im Terminal übergebene Argument vorgegeben werden, z. B. ./runMe MaximaFile SINGULARFile, und dass dadurch eine Textdatei, Maxima.OUT, generiert wird.

Ich möchte dann, nachdem die obige Datei (Maxima.OUT) geschrieben wurde, SINGULAR (auch) im Batch-Modus starten, mit der Datei, die ihm durch das zweite Argument übergeben wird, z. B. SINGULARFile. Es wird Daten aus Maxima.OUT einlesen und einige Dinge tun.

Das Problem:

Das Skript führt Maxima einwandfrei aus, schreibt die Datei, beendet sie und gibt SINGULAR ein. Aber anscheinend wird das Dateiargument, z. B. SINGULARFile, nicht geöffnet. Ich kann SINGULAR problemlos vom Terminal aus starten und die Datei automatisch ausführen/öffnen mit

/opt/local/bin/SINGULAR -b SINGULARFile

aber es funktioniert nicht in runMe.sh. Da die Programme sehr, sehr ähnlich zu sein scheinen, gehe ich davon aus, dass mein runMe.sh nicht richtig funktioniert ...

Antwort1

Diese Funktion sollte wie folgt aussehen:

callSINGULAR() {
/opt/local/bin/Singular -b "$1"
}

Da der Parameter zuerst für die Funktion bereitgestellt wird

verwandte Informationen