我有一个Windows应用程序,我在我的Mac上使用WineHQ来运行这个应用程序。该应用程序是物理学的特定数值解算器。每当要解决物理问题时,都要给出某些初始条件。
这个想法是开发一个bash脚本,可以为初始条件安装或运行这个数值解算器。
INSTALL: 当这个应用程序开发时,开发人员忘记将某些文件嵌入到应用程序中。因此,应用程序需要某些CUSTOM FILES,一旦安装了应用程序,它们就会被复制粘贴。 [它不是裂缝]。
RUN: 现在应用程序已安装,每次运行解算器时,我都必须指定初始条件。初始条件位于 INIT_FOLDER 。我打算将此文件夹复制到/ APP,然后运行APP.exe。
我正在编写一个bash脚本。
#! /bin/bash
if [ $1 = "INSTALL" ]; then
wine [APP MAC PATH] APP.exe
cp [CUSTOM FILES PATH]/ ~/.wine.../APP
cd ~/.wine.../APP
else
if [ $1="RUN" ]; then
cp $2 ~/.wine.../APP
cd ~/.wine.../APP
wine APP.exe
fi
fi
最终目标是运行以下命令,
>>./scriptname INSTALL
>>./scriptname RUN INIT_FOLDER_PATH
INSTALL: 当然,当我运行命令来安装应用程序时,我不会遇到任何问题。但是,我想改进以下脚本(教育自己)。假设应用程序未安装I.E。
wine [APP MAC PATH] APP.exe
“失败”。如何防止后续操作被执行?
另外,我不想输入wine文件夹的位置。是他们的一些方法,使这更容易,如将“葡萄酒应用程序路径”表示为一个等效的单词(比如FOO)
RUN: 我想对此进行一些验证。如果我打字,
>>./scriptname RUN INIT_FOLDER_PATH/
我写信假设$ 2是INIT_FOLDER_PATH。以下命令也是写方式,
cp $2 ~/.wine.../APPFOLDERNAME
答案 0 :(得分:0)
要防止指定wine可执行文件的路径,请确保该路径位于计算机的PATH环境变量中。 See here关于如何在Mac上执行此操作。完成后,您只需指定程序名称即可运行它。
我不确定错误捕获。您将在wineHQ环境中运行Windows可执行文件,因此您有两层错误。 1)Windows可执行文件和2)Wine内的错误。您可以查看葡萄酒用户指南中关于environment variables的部分。特别是WineDebug频道选项。我不确定这是否能解决Windows可执行文件中的错误,但它似乎是一个好的开始。您还可以在运行wine
行后检查返回代码,方法是选中返回return=$?
,代码为0-255。 0是A-OK,其他任何事情都是“在最后一个命令上发生了一些不好的事情”。
我不完全确定你在问题的最后部分提出了什么问题。在您的情况下,$2
将引用字符串“INIT_FOLDER_PATH /”,因此您的cp $2 ...
行会将名为“INIT_FOLDER_PATH /”的文件夹中的任何内容复制到您的~/.wine...
路径中。