--- title: "21-导入外部脚本" created: 2025-11-25 tags: - 项目 aliases: - 导入外部脚本 --- # 导入外部脚本 类似于C/C++中的include操作,bash也可以引入其他文件中的代码。 语法格式: ```bash . filename # 注意点和文件名之间有一个空格 或 source filename ``` 示例 创建test1.sh,内容为: ```bash #! /bin/bash name=yxc # 定义变量name ``` 然后创建test2.sh,内容为: ```bash #! /bin/bash source test1.sh # 或 . test1.sh echo My name is: $name # 可以使用test1.sh中的变量 ``` 执行命令: ```bash chmod +x test2.sh ./test2.sh My name is: yxc ``` ## source 与直接执行的区别 `source test1.sh`(或 `. test1.sh`)是在**当前 shell 进程内**执行脚本,里面定义的变量、函数、cd 等对当前会话持续生效;而 `./test1.sh` 或 `bash test1.sh` 会启动一个**子进程**执行,脚本结束后子进程消失,其中定义的变量对当前会话不可见。让配置生效的经典场景——修改 `~/.bashrc` 后执行 `source ~/.bashrc`——正是利用了"在当前进程中执行"这一特性。 也因此要注意:source 会不加隔离地执行目标脚本中的所有代码,不要随意 source 来路不明的脚本。 --- **项目分区导航**:[[20-文件重定向|文件重定向]] ⬅️ | 21-导入外部脚本 | ➡️ [[22-ssh登入|ssh登入]]