• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Wine-Programm über Desktop-Datei startet, nicht aber per Script

Hallo,

ich habe hier ein Spiel per Wine installiert das prima läuft solange ich es über die automatisch angelegte Desktop-Datei starte. Es soll aber in ein Shell-Script um es über eine Benutzeroberfläche ausführen zu können. Da kommt ein Fehler "Im Programm xyz trat ein schwerwiegender Fehler auf". Die Desktop sieht so aus:

Code:
[Desktop Entry]
Name=Secret Maryo Chronicles
Exec=env WINEPREFIX="/home/ich/.wine" /opt/wine-staging/bin/wine C:\\\\Program\\ Files\\\\Secret\\ Maryo\\ Chronicles\\\\Secret\\ Maryo\\ Chronicles.exe
Type=Application
StartupNotify=true
Comment=Start Secret Maryo Chronicles
Path=/home/ich/.wine/dosdevices/c:/Program Files/Secret Maryo Chronicles
Icon=9406_Secret Maryo Chronicles.0
StartupWMClass=secret maryo chronicles.exe

Das Script dann so:

Code:
#!/bin/bash
env WINEPREFIX="/home/ich/.wine" /opt/wine-staging/bin/wine C:\\"Program Files"\\"Secret Maryo Chronicles"\\"Secret Maryo Chronicles.exe"

Die Desktop-Datei hat keine Quotes, dafür werden die Leerzeichen durch // maskiert, das geht im Shellscript nicht. Wurde getestet. Auch hab ich den ganzen Pfad in Quotes gesetzt statt die einzelnen Ordner/Datei, auch hab ich noch WINEARCH=win32 eingeügt. Nichts geht. Ich finde aber auch keine Möglichkeit die Desktop-Datei direkt per Shell-Script zu starten.

P.S.
Leider sind alle Bezugsquellen für den Linuxport des Spiels tot und laut einiger Beiträge geht es unter Ubuntu 16.04 nicht mehr zu kombilieren. Daher der Windows-Port.

Bunter Fisch
 

susejunky

Moderator
Teammitglied
Hallo bunter fisch,
bunter fisch schrieb:
... Die Desktop sieht so aus:

Code:
[Desktop Entry]
Name=Secret Maryo Chronicles
Exec=env WINEPREFIX="/home/ich/.wine" /opt/wine-staging/bin/wine C:\\\\Program\\ Files\\\\Secret\\ Maryo\\ Chronicles\\\\Secret\\ Maryo\\ Chronicles.exe
Type=Application
StartupNotify=true
Comment=Start Secret Maryo Chronicles
Path=/home/ich/.wine/dosdevices/c:/Program Files/Secret Maryo Chronicles
Icon=9406_Secret Maryo Chronicles.0
StartupWMClass=secret maryo chronicles.exe

Das Script dann so:

Code:
#!/bin/bash
env WINEPREFIX="/home/ich/.wine" /opt/wine-staging/bin/wine C:\\"Program Files"\\"Secret Maryo Chronicles"\\"Secret Maryo Chronicles.exe"
Du versuchst hier zwei Befehle in einer Zeile auszuführen. Entweder Du trennst durch ";"
Code:
#!/bin/bash
env WINEPREFIX="/home/ich/.wine"; /opt/wine-staging/bin/wine C:\\"Program Files"\\"Secret Maryo Chronicles"\\"Secret Maryo Chronicles.exe"
oder Du machst einfach zwei Zeilen daraus
Code:
#!/bin/bash
env WINEPREFIX="/home/ich/.wine"
/opt/wine-staging/bin/wine C:\\"Program Files"\\"Secret Maryo Chronicles"\\"Secret Maryo Chronicles.exe"

Ist der Pfad aus der .desktop-Datei so "C:\\\\Program\\ Files\\\\Secret\\ Maryo\\ Chronicles\\\\Secret\\ Maryo\\ Chronicles.exe" wirklich korrekt (z.B. mit den Leerzeichen vor " Files" )?

In meinem System sehen Pfade in .desktop-Dateien so "C:\\\\Program Files (x86)\\\\PROGRAMMVERZEICHNIS\\\\PROGRAMM.EXE" aus und ich kann diese in einem Skript
Code:
#!/bin/bash
env WINEPREFIX="$HOME/.wine"
wine "C:\\\\Program Files (x86)\\\\PROGRAMMVERZEICHNIS\\\\PROGRAMM.EXE"
auch so verwenden.

Viele Grüße

susejunky
 
OP
B

bunter fisch

Member
Es geht mit dem Unix-Pfad und der Option /Unix. Auch wenn ich alles in einer Zeile ohne ; ausführe.

Wenn ich den Win-Pfad nutze muss man "Start" mit einfügen, ging aber bei mir dennoch nicht.

Und ja, hinten den // war jeweils ein Leerzeichen.
 
Oben