Die beiden folgenden Zeilen habe ich für meine UNIX-Shell.
cobc -free -x -o$(basename "$1" .exe) "$1"
./$(basename "$1" .exe)
Wenn ich tippe:
./myshell file.cob
...das Programm läuft einwandfrei. Aber die ursprüngliche Cobol-Datei (ohne Erweiterung) wird mit kompiliertem Systemcode überschrieben, sodass der Inhalt genau wie der Systemcode von cobolfile.exe aussieht. Ich kann das Programm also nur einmal ausführen, dann ist alles verloren ... Wie kann ich mein Shell-Programm optimieren, um dies zu vermeiden?
Prost!! :)
Antwort1
Das Bash-Beispiel in der Frage scheint korrigiert worden zu sein – obwohl es ziemlich seltsam ist, eine ausführbare Datei in einem GNU/Linux-System „.exe“ zu nennen, nicht wahr?
Wenn Sie die Ausgabedatei nicht als ausführbare Datei benötigen, empfehle ich Folgendes:
cobc -free $1
cobcrun $(basename "$1")