Wie erhalte ich den Exit-Code eines Prozesses, der über Wine läuft?

Wie erhalte ich den Exit-Code eines Prozesses, der über Wine läuft?

Ich versuche, eine ausführbare Windows-Datei über Wine auszuführen. Beim ersten Versuch wird es nicht ausgeführt, aber beim nächsten Versuch wird das Programm ausgeführt.

Ich möchte ein Skript zum Ausführen des Programms erstellen. Hier ist der wichtige Teil des Skripts:

EXECUTABLE=$(env XMODIFIERS="" wine hl.exe .nomaster -strechaspect)
$EXECUTABLE
echo "Exit Status = $?"

Dabei erhalte ich nie die Meldung „Exit Status 0“, da Wine zwar erfolgreich beendet wird, „hl.exe“ jedoch mit einem Fehler beendet wird, da es nicht beim ersten Versuch gestartet wurde, sondern erst beim zweiten Versuch, wie ich am Anfang sagte.

Ich dachte zuerst, dass es so etwas tun könnte:

e=$?
if [ $e -ne 0 ]
then
  echo
  echo "Exit with Error"
  echo
fi

aber es wird mir nie die Meldung „Exit Status = 0“ angezeigt.

Kann mir jemand helfen, das Problem zu lösen?

Antwort1

Ok, ich habe das Problem mit einem Workaround gelöst, weil es nicht möglich ist, den Exit-Statuscode der ausführbaren Datei von Wine Windows abzurufen.

Ok, ich habe das Folgende eingefügt

EXECUTABLE=$(env XMODIFIERS="" wine hl.exe .nomaster -strechaspect)
$EXECUTABLE
HL1EXE=$(ps -A | grep hl.exe | awk '{print $4}')

if [ -z "$HL1EXE"]; then
       echo
       echo "Try to Launch again wait" 
       echo
       sleep 3
       EXECUTABLE=$(env XMODIFIERS="" wine hl.exe .nomaster -strechaspect)
       $EXECUTABLE
       HL1EXE=$(ps -A | grep hl.exe | awk '{print $4}')
       echo "Executable File : $HL1EXE"
fi

und fertig, das Spiel kann beginnen.

verwandte Informationen