Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在三个bash脚本之间提取公共代码?_Bash_Scripting - Fatal编程技术网

如何在三个bash脚本之间提取公共代码?

如何在三个bash脚本之间提取公共代码?,bash,scripting,Bash,Scripting,我在三个不同的兄弟目录中有三个bash脚本 每一行的前几行都进行了一些设置,每一行之间有所不同 脚本的最后二十行左右是字符对字符相同的,处理和比较第一位中构造的文件 我想做的是把最后二十行放进去,比如说。/common.bash,然后做类似的事情 #include "../common.bash" 在三个脚本中的每一个中,以避免每次我拨弄时必须在三个地方进行相同的更改 到目前为止,我最好的猜测是使用cat从四个道德上独立的片段中构造脚本 有更好的方法吗?使用源代码 source /path/

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

每一行的前几行都进行了一些设置,每一行之间有所不同

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

我想做的是把最后二十行放进去,比如说
。/common.bash
,然后做类似的事情

#include "../common.bash" 
在三个脚本中的每一个中,以避免每次我拨弄时必须在三个地方进行相同的更改

到目前为止,我最好的猜测是使用
cat
从四个道德上独立的片段中构造脚本


有更好的方法吗?

使用
源代码

source /path/to/common.bash
您不应该使用相对路径,因为它将被解释为相对于用户的工作目录,而不是脚本的位置。

使用
meld

source
可能是我想要的答案,但实际上在本例中,我发现最好使用
meld
并排查看三个文件,并使用
meld
传播最喜欢的更改

这样做的好处是,在处理一个文件时,我可以立即看到整个文件


但它无法扩展到不可避免的第四个副本,因此在这一点上,我将使用
源代码
,我猜。

将公共方面转换为函数在脚本中定义它们,并将它们导出为
export-f
,这样您就可以在其他脚本中重复使用它们,而不是包含为什么不将最后20行放在脚本中,然后在其他脚本的末尾运行或源代码?谢谢!那条路有点脏。有没有说“从这个文件的位置向上一个目录”?否则,每次移动/重命名/签出到错误的位置时,该对象都会损坏。您可以将其放入
$PATH
中的目录中,并将其删除
source
将搜索它。请参阅@JohnLawrenceAspden
。/script
?@123,这将不起作用。它将从用户目录而不是脚本目录中上升。什么是
meld