Похожих вопросов много, но я не могу найти пример того, что ищу, даже в руководствах по написанию сценариев 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"
}
Поскольку параметр является первым, предоставленным для функции