外包bash shell脚本函数

时间:2016-09-13 17:09:42

标签: linux bash shell

我有一个用bash编写的非常大的shell脚本,并希望将一些函数外包给一个额外的文件,因为我在其他一些脚本中有相同的功能。

所以我可以外包它们,修复/改进它们一次并在多个主要脚本中重复使用它。

我可以"复制并粘贴"这些函数从当前的大脚本到单个较小的脚本,稍后使用source functions_versionCheck.sh将它们包含在大脚本中?

1 个答案:

答案 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