11 · 文件包含
目标:掌握
source与.的用法,理解「函数库」思想
🎯 今天要带走的三件事
- Shell 可以包含外部脚本,封装公用代码
- 两种写法:
. filename(注意空格)和source filename - 被包含的文件不需要可执行权限
一、语法
. filename # ⚠️ 点号和文件名之间有一空格
# 或
source filename
二、实例
test1.sh(被包含的「库文件」):
#!/bin/bash
url="http://www.runoob.com"
test2.sh:
#!/bin/bash
# 用 . 号引用
. ./test1.sh
# 或者用 source
# source ./test1.sh
echo "菜鸟教程官网地址:$url"
运行:
$ chmod +x test2.sh
$ ./test2.sh
菜鸟教程官网地址:http://www.runoob.com
三、关键注意
.和文件名之间必须有空格,否则变成当前目录.和文件名拼接- 被包含文件(test1.sh)不需要可执行权限
- 相当于把库文件的代码「复制粘贴」到当前位置执行,其中的变量/函数都能直接用
生活比喻
像 C 语言的
#include、Java 的import:把常用工具(函数、变量)抽到单独文件,谁需要谁「引」进来,避免重复造轮子。
🌙 今日作业
- [ ] 建两个文件:一个存公用函数,一个用
source引入并调用
自测题
. file中点号后能省略空格吗?为什么?- 被包含的文件需要
chmod +x吗?
👉 参考答案
1. 不能。`.` 在 Shell 中是 source 的同义命令,必须与文件名用空格分隔,否则会被当成路径拼接。 2. 不需要。它只是被读取并执行内容,不是作为独立程序运行。🔗 关联
Shell-学习总览|上一课 → 10-输入输出重定向|下一课 → 12-实战脚本合集