linux shell脚本被包含是什么意思?.命令和source命令(在脚本中运行脚本,脚本中调用脚本)

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

在 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脚本获取脚本目录时 ( d i r n a m e “ (dirname “ (dirname{BASH_SOURCE[0]}“)与$(dirname $0)有什么区别

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: shelllinux

“linux shell脚本被包含是什么意思?.命令和source命令(在脚本中运行脚本,脚本中调用脚本)” 的相关文章