Bash:定义高于绝对路径的路径

Bash:定义高于绝对路径的路径

我正在目录中运行脚本:

a/b/c/d/script.bash

我需要创建一个环境变量 projroot,这样

  script=$(readlink -f $0) # Absolute path to this script.
  export projroot=$(dirname $(dirname $script)) #This points to the absolute path

我如何定义projroot, 以便projroot指向a/b而不是a/b/c

答案1

您可以使用嵌套dirname,也可以使用bash 参数扩展realpath

使用真实路径:

script=$(readlink -f "$0")
export projroot=$(realpath -mL "${script}/../../..")

使用 bash 参数扩展:

script=$(readlink -f "$0")
export projroot="${script%/*/*/*}"

相关内容