关于bash:获取shell脚本目录的父目录

Get parent directory of shell script's directory

本问题已经有最佳答案,请猛点这里访问。

我这里有一个shell脚本:

1
/node_modules/.bin/exec.sh

在exec.sh脚本中,我想获取脚本所包含的目录的父目录的路径(不是pwd/cwd!).I可以获取包含目录,如下所示:

1
`dirname $0`

这将产生:

1
/node_modules/.bin

但是我想找一个更高的目录,我只想

1
/node_modules

我很难找到答案,我的猜测是:

1
`dirname $1`

只是猜测一下,不确定是否正确。有人能解释一下怎么做以及它是如何工作的吗?


运行两次dirname(嵌套)。

1
2
3
4
5
~$ dirname $PWD
/home
~$ dirname `dirname $PWD`
/
~$


我相信答案是

1
$(dirname $(dirname"$0"))

不要忘记"0美元"左右的双引号。