Skip to content

LV090-文件包含

一、文件包含

1. 使用格式

shell 脚本与 C 语言一样,可以包含外部文件, shell 可以将外部脚本的内容合并到当前脚本。这样可以很方便的封装一些公用的代码作为一个独立的文件以便于使用。shell 文件包含的语法格式有两种:

shell
# 语法格式 1
. file_name
# 语法格式 2
source file_name

注意】被包含的脚本文件不需要可执行权限,使用 source 命令和点号 . 是等价的,类似于 C/C++中的#include 预处理指令,都是将指定的脚本内容拷贝至当前的脚本中,由一个 shell 进程来执行。

2. 使用实例

shell
#------------以下分隔开的是两个文件---------
# 引用其他文件内容的文件
#!/bin/bash
# filename: file1.sh
var1=aaa
var2=bbb
export var1
echo "file2========start"
. file2.sh
echo "file2========end"
echo ""
echo "file1.sh:var1=${var1}(file1.sh中定义,export)"
echo "file1.sh:var2=${var2}(file1.sh中定义)"
echo "file1.sh:var=${var}(file2.sh中定义)"

# --------------------------------------
# 变量定义文件
#!/bin/bash
# filename: file2.sh
var="file1.sh"

echo "file2.sh:var1=${var1}(file1.sh中定义,export)"
echo "file2.sh:var2=${var2}(file1.sh中定义)"
echo "file2.sh:var=${var}(file2.sh中定义)"

我们输入 ./file1.sh 执行脚本,输出结果如下

shell
hk@ubuntu-22-04:~/桌面/1sharedfiles/6temp/myubuntu$ ./file1.sh 
file2========start
file2.sh:var1=aaa(file1.sh中定义,export)
file2.sh:var2=bbb(file1.sh中定义)
file2.sh:var=file2.sh(file2.sh中定义)
file2========end

file1.sh:var1=aaa(file1.sh中定义,export)
file1.sh:var2=bbb(file1.sh中定义)
file1.sh:var=file2.sh(file2.sh中定义)