Shell 获取当前脚本的绝对路径

2022-04-02 15:03:08 浏览数 (1)

请注意:本文编写于 2020-04-26,其中某些信息可能已经失去时效性。

1. dirname pwd

代码语言:javascript复制
root_absolute_dir=$(cd "$(dirname "$0")";pwd)

2. readlink

代码语言:javascript复制
root_absolute_dir=$(dirname $(readlink -f "$0"))

注意

macOS 中使用 readlink -f 命令会有如下报错:

代码语言:javascript复制
readlink: illegal option -- f
usage: readlink [-n] [file ...]

可以安装 greadlink 代替 readlink

代码语言:javascript复制
# 这里仅提供使用 Homebrew 安装方法
brew install greadlink
# 可以修改 bash_profile 文件,添加 alias readlink=greadlink
# 使用 greadlink 代替 readlink

参考

  1. 10km:bash shell:获取当前脚本的绝对路径(pwd/readlink)
  2. orientlu:shell 当前工作目录的绝对路径
  3. macos - 如何在Mac上获取GNU的readlink -f的行为?

0 人点赞