我正在编写一个小的shell脚本,在我的wine目录中启动一个程序。 我的挑战是我已经在多台机器上安装了这台机器,有些机器是64台 有些是32位,有些是英语,有些是挪威本地人。
$HOME/.wine/drive_c
中程序文件目录的名称因此可以更改
来自Program Files
,Program Files (x86)
,programfiler
等。
我到目前为止的bash
行是这样的:
(cd $HOME/.wine/drive_c/[Pp]rogram*/... ; wine ...)
然而,[Pp]rogram*
行不起作用,是否有人有好的建议?
答案 0 :(得分:1)
这应该可以正常工作,但由于您在64位安装上同时拥有Program Files
和Program Files (x86)
,因此这将永远扩展为Program Files
,这可能是您的错误。
我会使用以下内容动态确定正确的路径:
look_for='My Program/myprogram.exe'
for dir in "$HOME"/.wine/drive_c/[Pp]rogram*[Ff]*/; do
if [ -e "${dir}${look_for}" ]; then
cd "${dir}"
wine [...]
exit $?
fi
done
这会循环遍历所有可能的"程序文件"目录并检查$look_for
中指定的文件/目录是否存在于其下方。如果是,则将$look_for
,cd
的目录组件放入其中并从那里运行wine
。