我有一个用bash编写的非常大的shell脚本,并希望将一些函数外包给一个额外的文件,因为我在其他一些脚本中有相同的功能。
所以我可以外包它们,修复/改进它们一次并在多个主要脚本中重复使用它。
我可以"复制并粘贴"这些函数从当前的大脚本到单个较小的脚本,稍后使用source functions_versionCheck.sh
将它们包含在大脚本中?
答案 0 :(得分:3)
绝对是的。我在大型shell脚本自动化框架上工作,它基于同样的想法。这是一个基本的例子:
AllFn.sh :
function echoBold(){
echo "******************************************"
echo "$1"
echo "******************************************"
}
myscript.sh :
source AllFn.sh
echoBold "This is a bold message"
您必须使AllFn.sh脚本尽可能通用,并使其从某些属性文件中读取属性,以便您可以为您传递的特定参数自定义泛型函数。 e.g。
properties.txt:
test1_host=hostname1
test2_host=hostname2
AllFn.sh :
propfile=/home/$USER/properties.txt
function printHost(){
hostname=`grep ${1}_host $propfile | cut -d'=' -f2`
echo $hostname
}
myscript.sh :
source AllFn.sh
printHost test1
printHost test2