script bash para chamar duas funções, consecutivamente, cada uma com seu próprio argumento

script bash para chamar duas funções, consecutivamente, cada uma com seu próprio argumento

Existem muitas perguntas semelhantes, mas não consigo encontrar um exemplo do que estou procurando, nem nos guias de script do Bash (tenho certeza que está lá, mas é um livro grande...)

O que eu quero é isso:

Tenho um arquivo que chamo por: ./runMe.sh, cujo conteúdo é este:

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

Eu quero que o Maxima faça algumas coisas, ditadas pelo primeiro argumento passado no terminal, por exemplo ./runMe MaximaFile SINGULARFile, e que irá gerar um arquivo de texto, Maxima.OUT.

Quero então, após a gravação do arquivo acima (Maxima.OUT), iniciar o SINGULAR em modo batch (também), com o arquivo passado a ele pelo segundo argumento, por exemplo, SINGULARFile. Ele irá ler dados do Maxima.OUT e fazer algumas coisas.

O problema:

O script roda bem o Maxima, grava o arquivo, sai e entra em SINGULAR. Mas aparentemente o argumento do arquivo, por exemplo, SINGULARFile, não está sendo aberto. Posso facilmente iniciar o SINGULAR a partir do terminal e executar/abrir automaticamente o arquivo com

/opt/local/bin/SINGULAR -b SINGULARFile

mas não está funcionando no runMe.sh. Como os programas parecem muito semelhantes, presumo que meu runMe.sh não esteja funcionando direito...

Responder1

Esta função deve ser semelhante a:

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

Porque o parâmetro é o primeiro, fornecido para funcionar

informação relacionada