正则表达式bash中的葡萄酒目录

时间:2014-05-01 15:16:16

标签: regex bash wine

我正在编写一个小的shell脚本,在我的wine目录中启动一个程序。 我的挑战是我已经在多台机器上安装了这台机器,有些机器是64台 有些是32位,有些是英语,有些是挪威本地人。

$HOME/.wine/drive_c中程序文件目录的名称因此可以更改 来自Program FilesProgram Files (x86)programfiler等。

我到目前为止的bash行是这样的:

(cd $HOME/.wine/drive_c/[Pp]rogram*/... ; wine ...)

然而,[Pp]rogram*行不起作用,是否有人有好的建议?

1 个答案:

答案 0 :(得分:1)

这应该可以正常工作,但由于您在64位安装上同时拥有Program FilesProgram 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_forcd的目录组件放入其中并从那里运行wine