在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环境配置和脚本模块化。