Shell 文件包含
和其他语言一样,Shell 也可以包含外部脚本。这样可以很方便的封装一些公用的代码作为一个独立的文件。
Shell 文件包含的语法格式如下:
. filename # 注意点号(.)和文件名中间有一空格
或
source filename
实例
创建两个 shell 脚本文件。
test1.sh 代码如下:
#!/bin/bash
# author:W3Cschool教程
# url:www.w3cschool.cn
url="http://www.w3cschool.cn"
test2.sh 代码如下:
#!/bin/bash
# author:W3Cschool教程
# url:www.w3cschool.cn
#使用 . 号来引用test1.sh 文件
. ./test1.sh
# 或者使用以下包含文件代码
# source ./test1.sh
echo "W3Cschool教程官网地址:$url"
接下来,我们为 test2.sh 添加可执行权限并执行:
$ chmod +x test2.sh
$ ./test2.sh
W3Cschool教程官网地址:http://www.w3cschool.cn
注:被包含的文件 test1.sh 不需要可执行权限。
练习
第一个文件:b.sh
#!/bin/bash
funWithParam(){
echo "第一个参数为 $1 !"
echo "第二个参数为 $2 !"
echo "第十个参数为 $10 !"
echo "第十个参数为 ${10} !"
echo "第十一个参数为 ${11} !"
echo "参数总数有 $# 个!"
echo "作为一个字符串输出所有参数 $* !"
}
funWithParam 1 2 3 4 5 6 7 8 9 34 73
第二个文件:e.sh
#!/bin/bash
#使用 . 号来引用test1.sh 文件
. ./b.sh
# 或者使用以下包含文件代码
# source ./test1.sh
demoFun(){
echo "这是我的第一个 shell 函数!"
}
echo "-----函数开始执行-----"
demoFun
funWithParam 1 2 3 4 5 6 7 8 9 34 73
echo "-----函数执行完毕-----"
注意:导入后运行e.sh 其中b.sh的函数运行了2次,说明某种程度上导入文件 ,相当于把原文件里代码粘贴到新文件里。
当删除b.sh中的调用时,输出如下