Как получить код завершения процесса, который выполняется через Wine

Как получить код завершения процесса, который выполняется через Wine

Я пытаюсь запустить исполняемый файл Windows через Wine. При первой попытке он не запускается, но при повторной попытке программа запускается.

Я хотел бы создать скрипт для запуска программы, вот важная часть скрипта:

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

При этом он никогда не выдает мне сообщение «Exit Status 0», потому что Wine завершает работу успешно, но «hl.exe» завершается с ошибкой, потому что он не запустился с первой попытки, а только со второй, как я и сказал в начале.

Сначала я подумал, что подойдет что-то вроде этого:

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

но он никогда не показывает мне сообщение «Статус выхода = 0».

Может ли кто-нибудь помочь мне решить эту проблему?

решение1

Хорошо, я решил эту проблему с помощью обходного пути, поскольку получить код состояния завершения исполняемого файла Wine Windows невозможно.

Хорошо, я добавлю следующее

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

и готово, игра началась.

Связанный контент