我是 Windows 和 Linux 的长期用户,在 Mac OS X 上编写 shell 脚本有一些奇怪的经历。特别是,我可以很好地编写脚本并从终端运行它们,但每次我尝试从 Finder 运行一个window 它总是从用户的主目录而不是脚本所在的目录执行。也就是说,如果脚本位于
~/path/to/the/script.sh
它总是用完
~
.过去,我不得不问我更懂 Mac 的 friend 如何解决这个问题,他们经常使用一些非常糟糕的技术来解决这个问题,但我看不出有任何理由为什么会这样。我的问题是 - 有没有一种简单的方法可以在 Mac OS X 中编写一个 shell 脚本,当在 Finder 中双击时,它会用完它所在的目录?
最佳答案
这种行为对我来说似乎是一致的。它继承了您的 finder 实例环境,该环境将以您的主目录为根。
但是,修复起来并不难。
cd "$(dirname "$0")"
应该做的伎俩ala:
richh-desktop % fullname.sh
/home/richh/bin
richh-desktop % cd ..
richh-desktop % fullname.sh
/home/richh/bin
richh-desktop %
关于macos - Mac OS X 中的 Shell 脚本从主目录运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4600226/