macos - Mac OS X 中的 Shell 脚本从主目录运行?

标签 macos shell

我是 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/

相关文章:

Mac OS X Snow Leopard 附带的 Python 版本?

bash - 如何在没有 Readline 支持的情况下在 bash 实例中设置不区分大小写的完成

shell - #!/bin/sh 后破折号 '-' -

c++ - 链接 g++ minGW

bash - 如何使用 while 循环检查变量是否为空

macos - 如何在 Mac OS X 10.6 上将 clang 更新到 3.3

ruby - 我很困惑,在 OS X 上安装 Ruby 1.9.2 最简单的方法是什么?

Python:在外部 shell 中进行的定义获得错误的 `.__module__` 属性

macos - Visual Studio 2015 Mac 代理未连接到 Macbook

mysql - 在 OSX Sierra 中找不到错误 MySQL 服务器 PID 文件