OSX如何将Shell脚本更改目录更改为脚本所在的目录?

问题描述 投票:4回答:4

我正在使用Apple的自动器来创建Shell脚本。如果我将目录专门更改为jar文件所在的位置,则可以使其运行。但是,如果我想切换到Shell脚本运行的任何位置,该怎么办?

现在,我有以下功能,可以正常工作:

cd desktop/CommonDenom/
java -XstartOnFirstThread -jar CommonDenom.jar

我知道有一种方法可以定位启动Shell脚本的任何目录,但是我似乎无法正常工作。请具体说明,因为我已经很长时间没有使用Automator了。除非有人可以指定没有Automator的脚本编写方式。预先感谢。

java macos shell jar automator
4个回答
3
投票

shell脚本中为此的标准习惯用法是dirname $0$0变量是已执行脚本的路径,dirname命令采用路径并剥离最后一个组件以将路径保留到包含目录。

cd "`dirname $0`"

1
投票

只是想在这里称重。我见过有人遇到这个问题。如果您只是在OSX上并制作自己的脚本。这可以解决问题:)有点像hack,但是却像是一种魅力。


0
投票

我不确定您的意思是“要将目录更改为运行脚本的位置”,因为无论如何,您将位于运行脚本的目录中,因此无需在此更改目录。我认为您的意思是您希望脚本保留在脚本开始的任何位置,但仍然能够找到jar文件。


0
投票
#!/bin/bash
DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
cd "${DIR}"

...the rest of your script...
© www.soinside.com 2019 - 2024. All rights reserved.