我需要获取脚本的路径。我可以使用pwd
做到这一点,如果我已经在同一个目录中,我在网上搜索,我发现了这个
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
但我不知道如何使用它。
答案 0 :(得分:35)
Bash维护了许多变量,包括BASH_SOURCE
,这是一个源文件路径名数组。
${}
充当变量的引用。
$()
充当命令的引用,但它们会在自己的上下文中运行。
dirname
为您提供所提供参数的路径部分。
cd
更改当前目录。
pwd
给出了当前路径。
&&
是一个逻辑and
,但在此实例中用于一个接一个地运行命令的副作用。
总之,该命令获取脚本的源文件路径名,将其剥离到路径部分,cd
到该路径,然后使用pwd
返回(有效)脚本的完整路径。这已分配给DIR
。在所有这些之后,上下文被解开,所以你最终回到了你开始的目录,但是环境变量DIR
包含了脚本的路径。