source shell脚本
时间: 2025-09-02 16:49:17 AIGC 浏览: 2
在shell中,使用`source`命令加载shell脚本是一种常见的操作。以下是其方法和原理介绍:
### 方法
- **基本用法**:`source`命令的基本语法为`source 脚本文件名`。使用该命令后,脚本中的命令、定义的变量和环境变量都会在当前Shell环境中生效。例如,若要引入`test.sh`脚本的变量,可在当前Shell脚本中使用`source test.sh`,示例如下:
```bash
# test.sh
NAME='gzx'
AGE=17
ADDRESS='xxxxxxxxxx'
# 在当前Shell中引入test.sh的变量
source test.sh
echo $NAME # 输出 gzx
```
[^2]
- **加载配置文件**:在Shell脚本中,也可使用`source`命令加载配置文件。如`test_pro.sh`脚本中,使用`source`命令加载主配置文件`pro.properties`,示例如下:
```bash
#!/bin/bash
OIFS=$IFS
source ~/.bash_profile
# 程序根目录
baseDirForScriptSelf=$(cd "$(dirname "$0")"; pwd)
# 加载主配置文件
source ${baseDirForScriptSelf}/pro.properties
# 输出参数
echo ${city}
echo ${name}
```
[^3]
### 原理
`source`命令会在当前shell中执行脚本。当使用`source`命令加载脚本时,脚本中的任何变量或环境设置都会影响到当前shell环境。与之对比,若使用`./script.sh`的方式执行脚本,会在一个新的子shell中执行脚本,脚本中的变量或环境设置只会影响子shell,不会影响当前shell环境。例如:
```bash
# script.sh
VAR="test_value"
# 使用 ./script.sh 执行
./script.sh
echo $VAR # 输出为空,因为变量只在子shell中生效
# 使用 source script.sh 执行
source script.sh
echo $VAR # 输出 test_value,变量在当前shell中生效
```
[^5]
阅读全文
相关推荐



















