在Linux中,source命令(或.命令)用于在当前Shell环境中执行脚本文件,而不是在子Shell中运行。这意味着脚本中定义的变量、函数等会直接影响当前Shell会话。以下是详细用法和示例:
source 文件名 [参数]
# 或等效的简写形式
. 文件名 [参数]
$1, $2等访问)。修改~/.bashrc或自定义配置文件后,无需重启终端,直接生效:
source ~/.bashrc
# 或
. ~/.bashrc
假设脚本my_functions.sh定义了函数:
source my_functions.sh
# 之后可直接调用脚本中的函数
source script.sh arg1 arg2
在script.sh中通过$1, $2获取参数。
./script.sh或bash script.sh的区别| 命令 | 执行环境 | 影响范围 |
|---|---|---|
source script.sh |
当前Shell | 变量/函数保留在当前会话 |
./script.sh |
子Shell | 退出后变量失效 |
bash script.sh |
子Shell | 同上 |
config.env# 定义变量
export DB_HOST="localhost"
DB_PORT=3306
# 定义函数
start_server() {
echo "Starting server on $DB_HOST:$DB_PORT..."
}
# 加载脚本
source config.env
# 使用变量
echo $DB_HOST # 输出: localhost
# 调用函数
start_server # 输出: Starting server on localhost:3306...
source复用。cd、变量导出)。通过灵活使用source,可以高效管理Shell环境配置和脚本模块化。