As duas linhas abaixo são o que tenho para meu shell UNIX.
cobc -free -x -o$(basename "$1" .exe) "$1"
./$(basename "$1" .exe)
Quando eu digito:
./myshell file.cob
...o programa funciona bem. Mas o cobolfile original (sem extensão) é substituído pelo código do sistema compilado, de modo que o conteúdo se parece exatamente com o código do sistema cobolfile.exe. Então só posso executar o programa uma vez e tudo estará perdido... Como ajustar meu programa shell para evitar isso?
Saúde!! :)
Responder1
O exemplo bash na pergunta parece ter sido corrigido - embora seja bastante estranho chamar um arquivo executável de ".exe" em um sistema GNU/Linux, não é?
Se você não precisa que o arquivo de saída seja um executável, sugiro fazer
cobc -free $1
cobcrun $(basename "$1")