网站建设活动在百度做广告多少钱
在 shell 编程中,当一个 shell 脚本被另一个 shell 脚本包含,即用 . 或 source 命令包含,则被包含的脚本在当前 shell 进程内执行,并且可以访问当前 shell 进程的环境变量和函数。
 此时,$0 代表的是主脚本的名称,而 $BASH_SOURCE 数组则包含了当前脚本的名称和被包含的脚本的名称。
 因此,$(dirname "${BASH_SOURCE[0]}") 用来获取当前脚本(包括被包含的脚本)所在目录的路径。
示例1:用.命令包含脚本运行
 
helper.sh
# helper.sh
function greet() {echo "Hello, $1"
}
 
# main.sh
. ./helper.sh
greet "User" 
运行main.sh时,将输出:
Hello, User
 
用source命令包含脚本运行
# helper.sh
function greet() {echo "Hello, $1"
}
 
# main.sh
source ./helper.sh
greet "User"
 
运行main.sh时,也将输出:
Hello, User 
参考文章:linux shell脚本获取脚本目录时,(dirname“(dirname “(dirname“{BASH_SOURCE[0]}“)与$(dirname $0)有什么区别?
