OS X bash:dirname

Din*_*nah 9 macos bash dirname

我想创建一个简单的bash脚本来在OS X上启动Java程序.文件名,文件路径和直接工作文件夹都包含空格.当我这样做:

#!/bin/sh
cd `dirname $0`
Run Code Online (Sandbox Code Playgroud)

我明白了

usage: dirname path
Run Code Online (Sandbox Code Playgroud)

我也试过把报价放在各种不同的地方.最精细的例子是

cd "`dirname \"$0\"`"
Run Code Online (Sandbox Code Playgroud)

没有任何效果.我要么得到错误消息,要么得到神秘的"用法:dirname路径"消息.

可能有哪些其他方法可行?


编辑:对于除了我以外的任何人来说,这似乎不是问题所以它必须只是我的盒子.我将在下面接受我自己的帖子,因为它是解决这个特定问题的唯一解决方案.但是,我肯定赞同那些似乎对其他人都有效的解决方案,非常感谢大家的帮助.

Sea*_*ght 12

关于什么:

cd "$(dirname "$0")"
Run Code Online (Sandbox Code Playgroud)

这对我有用.


Din*_*nah 6

最终对我有用的是改变这一点:

#!/bin/sh
cd `dirname $0`
Run Code Online (Sandbox Code Playgroud)

对此:

#! /bin/zsh
cd "${0:h}"
Run Code Online (Sandbox Code Playgroud)

这还支持包含空格的文件名和文件路径。这是我找到它的地方:http://rentzsch.com/unix/locationAwareCommandFiles


Ned*_*ily 5

#!/bin/sh
cd "$(dirname "$0")"
Run Code Online (Sandbox Code Playgroud)