如何让脚本检测它在图形文件管理器中的运行位置?例如,我想通过在 Nautilus 中双击运行 Wine 目录中的 Windows 程序,但 Wine 无法加载 DLL 文件,因为它没有将文件管理器的打开文件夹视为当前工作目录。它假设它是从我的主目录运行的。
为了清楚起见编辑:
在这个例子中,我并没有试图检测我正在运行的 wine 可执行文件在哪里。假设在我的文件管理器中我已经/home/test-directory/win
打开并且我正在尝试运行/home/test-directory/win/testprogram.exe
.
我正在寻找一种将 Wine 命令包装在 shell 脚本中的方法,这样我就可以在/home/test-directory/win
尝试在testprogram.exe
.如果我在,我希望它在运行之前/home/other-directory/win
自动更改为。/home/other-directory/win
答案1
为了将脚本的工作目录更改为脚本所在的目录,您可以使用以下构造:
#!/bin/sh
cd "$(dirname "$0")"
# Wine command(s) here
这将获取您启动的脚本的目录,并在执行 Wine 命令之前将其更改为该目录。