それぞれ独自の引数を持つ 2 つの関数を連続して呼び出す bash スクリプト

それぞれ独自の引数を持つ 2 つの関数を連続して呼び出す bash スクリプト

同様の質問はたくさんありますが、探している例が Bash スクリプト ガイドにも見つかりません (あるはずですが、大きな本です...)

私が欲しいのはこれです:

./runMe.sh というファイルがあり、その内容は次のとおりです。

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

ターミナルに渡される最初の引数 (例: ./runMe MaximaFile SINGULARFile) に従って、Maxima にいくつかの処理を実行させ、テキスト ファイル Maxima.OUT を生成させます。

次に、上記のファイル (Maxima.OUT) が書き込まれた後、2 番目の引数で渡されたファイル (例: SINGULARFile) を使用して、SINGULAR をバッチ モード (これも) で起動します。Maxima.OUT からデータを読み取り、いくつかの処理を実行します。

問題:

スクリプトはMaximaを正常に実行し、ファイルを書き込み、終了してSINGULARに入ります。しかし、どうやらファイル引数、例えばSINGULARFileが開かれていないようです。ターミナルからSINGULARを簡単に起動し、自動的にファイルを実行/開くことができます。

/opt/local/bin/SINGULAR -b SINGULARFile

しかし、runMe.sh では動作しません。プログラムが非常によく似ているため、runMe.sh が正しく動作していないと思われます...

答え1

この関数は次のようになります。

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

パラメータが最初に関数に提供されるため

関連情報