Wineを介して実行されるプロセスの終了コードを取得するにはどうすればいいですか

Wineを介して実行されるプロセスの終了コードを取得するにはどうすればいいですか

Wine 経由で Wi​​ndows 実行ファイルを実行しようとしています。最初に実行しようとしたときには実行されませんでしたが、もう一度実行しようとするとプログラムが実行されます。

プログラムを実行するスクリプトを作成したいと思います。スクリプトの重要な部分は次のとおりです。

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

これにより、「終了ステータス 0」というメッセージは表示されなくなります。これは、wine は正常に終了するが、「hl.exe」は最初の試行では開始されず、最初に述べたように 2 回目の試行でのみ開始されるため、エラーで終了するためです。

最初は次のようなことが考えられました:

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

しかし、「終了ステータス = 0」というメッセージは表示されません。

誰かこれを解決する方法を教えてくれませんか?

答え1

わかりました。回避策で解決しました。Wine Windows 実行可能ファイルの終了ステータス コードを取得できないためです。

OK、次のことを書きます

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

準備ができたら、ゲーム開始です。

関連情報