bash 脚本连续调用两个函数,每个函数都有自己的参数

bash 脚本连续调用两个函数,每个函数都有自己的参数

有很多类似的问题,但我找不到我正在寻找的示例,也没有在 Bash 脚本指南中找到(我确信它在那里,但它是一本大书......)

我想要的是这个:

我有一个通过以下方式调用的文件:./runMe.sh,其内容如下:

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

我希望 Maxima 做一些事情,由终端传递的第一个参数决定,例如 ./runMe MaximaFile SINGULARFile,它将生成一个文本文件 Maxima.OUT。

然后,我希望在写入上述文件 (Maxima.OUT) 后,以批处理模式启动 SINGULAR (同样),并通过第二个参数将文件传递给它,例如 SINGULARFile。它将从 Maxima.OUT 读取数据并执行一些操作。

问题:

该脚本可以很好地运行 Maxima,写入文件,退出并进入 SINGULAR。但显然文件参数(例如 SINGULARFile)未打开。我可以轻松地从终端启动 SINGULAR 并自动执行/打开文件

/opt/local/bin/SINGULAR -b SINGULARFile

但它在 runMe.sh 中不起作用。由于这些程序看起来非常相似,我猜我的 runMe.sh 无法正常工作……

答案1

这个函数看起来应该是这样的:

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

因为参数是第一个提供给函数的

相关内容