如何在三个bash脚本之间抽象公共代码?

时间:2017-05-25 14:37:53

标签: bash scripting

我在三个不同的兄弟目录中有三个bash脚本。

每个的前几行做一些设置,每个设置不同。

脚本的最后二十行左右是字符相同的字符,处理和比较第一位构造的文件。

我想做的是将最后20行放入,../common.bash,并执行类似

的操作
#include "../common.bash" 

在三个脚本中的每个脚本中,以避免每次摆弄时都必须在三个地方进行相同的更改。

到目前为止,我最好的猜测是使用cat从四个与道德无关的部分构建脚本。

有更好的方法吗?

2 个答案:

答案 0 :(得分:2)

使用source

source /path/to/common.bash

您不应该使用相对路径,因为它将相对于用户的工作目录而不是脚本的位置进行解释。

答案 1 :(得分:0)

使用meld

source可能是我想要的答案,但实际上在这种情况下,我发现最好使用meld并排查看这三个文件,使用meld传播收藏的更改。

优势在于,当处理一个文件时,我可以立刻看到整个文件。

但它不会扩展到不可避免的第四个副本,所以在那一点上我会使用source,我猜。