【发布时间】:2017-04-09 10:57:58
【问题描述】:
我这里有一个 shell 脚本:
/node_modules/.bin/exec.sh
在 exec.sh 脚本中,我想获取该脚本所在目录的父目录的路径(不是 pwd/cwd!)。我可以像这样获取包含目录:
`dirname $0`
这将产生:
/node_modules/.bin
但我希望获得更高的目录,我只想获得
/node_modules
我在寻找答案时遇到了麻烦,我的猜测是:
`dirname $1`
只是一个猜测,不确定这是否正确。谁能解释一下如何做到这一点以及它是如何工作的?
【问题讨论】:
-
不,完全没有,这与cwd/pwd无关
-
@AlexanderMills 它与此有关。获取目标的父目录。然后获取那个目录的父目录。
-
不,它与包含脚本的目录有关,而不是当前工作目录或当前工作目录,它们可能非常不同......想象你像这样执行脚本../ ../exec.sh,谢谢
-
@AlexanderMills 实际上我从可能的重复项列表中选择了错误的答案。我现在撤回了我的近距离投票。
-
可以使用参数扩展..
p='/node_modules/.bin/exec.sh'; echo "${p%/*/*}"