【发布时间】:2017-04-09 14:02:20
【问题描述】:
我在 MacOS 上,但正在寻找一个也适用于 *nix 的跨平台解决方案。简单的问题,如何使用 bash 脚本解决此路径?
/Users/Olegzandr/.nvm/versions/node/v7.2.0/bin/../lib/node_modules/suman/cli/cli.sh
这条路径由我手头的两部分组成:
/Users/Olegzandr/.nvm/versions/node/v7.2.0/bin
和
../lib/node_modules/suman/cli/cli.sh
获得代表这两条路径分辨率的绝对路径的最佳方法是什么?
请注意,我的 Mac 上有 readlink,但它似乎与 *nix 机器上的实用程序不同。最重要的是,我的 readlink 实用程序没有 *nix 实用程序可能有的 -f 选项,所以我似乎无法使用它。
【问题讨论】:
-
刚刚从那里尝试了一些东西 - 你能详细说明你认为那里的答案对我有帮助吗?
-
我想第一个答案可以帮助您编写脚本:
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"。我无法用 MacOS 和 bash 测试它们。 -
为了我的目的,我可以从简单的 $(dirname "$0") 中获得相同的值,我认为这不是我需要的
-
为什么需要“解决”?
/Users/Olegzandr/.nvm/versions/node/v7.2.0/bin/../lib/node_modules/suman/cli/cli.sh是一个完美的路径,它引用与/Users/Olegzandr/.nvm/versions/node/v7.2.0/lib/node_modules/suman/cli/cli.sh相同的文件