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