У меня есть приложение MS Windows, которому нужна новая версия Wine. Я установил его локально в домашнюю папку с помощью PlayOnLinux.
Я застрял в создании простого сценария bash/dash/sh для запуска приложения .exe внутри своей папки. Я пробовал стандартный подход, pushd/popd
но он не удался .cd && exec
(cd && exec)
Что мне нужно:
В настоящее время я доволен следующим Python-кодом для скрипта-оболочки (для размещения в /usr/local/bin/wine32-wrapper ):
#!/usr/bin/python3
import os
import sys
import subprocess
if len(sys.argv) >= 2:
path = sys.argv[1]
wd = os.path.dirname(path)
exec_path = ["/home/{}/.PlayOnLinux/wine/linux-x86/6.15/bin/wine".format(os.getenv('USER'), path), "{}".format(path)]
p = subprocess.run(exec_path, cwd=wd)
else:
print("\nUsage {} with one argument - full file path.".format(sys.argv[0]));
и .desktop-файл (поместить в ~/.local/share/applications/wine32.desktop ), для него:
#!/usr/bin/env xdg-open
[Desktop Entry]
Version=1.0
Type=Application
Terminal=false
Icon=mate-panel-launcher
Exec=wine32-wrapper %f
Name=Local Wine32-6.15
затем я связываю свои exe-файлы с этим скриптом wine, используя Caja.
Можно ли заменить вышеприведенный скрипт python скриптом bash/dash/sh с точно такой же функциональностью?