有很多类似的问题,但我找不到我正在寻找的示例,也没有在 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"
}
因为参数是第一个提供给函数的