首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Bash -如何递归地将函数中使用的函数复制到另一个脚本(与其他人共享我的.bashrc文件,但只与相关部分共享)

Bash -如何递归地将函数中使用的函数复制到另一个脚本(与其他人共享我的.bashrc文件,但只与相关部分共享)
EN

Unix & Linux用户
提问于 2023-02-15 08:32:01
回答 1查看 95关注 0票数 1

我如何分享我的.bashrc文件,但只有相关的部分?

例如,我在.bashrc中创建了5个函数:

代码语言:javascript
复制
f1() {
...
}

f2() {
   f1
   ...
}

f3() {
   f2
   ...
}

f4() {
   f1
   f3
   ...
}

f5() {
   ...
}

案例1:我想和我的同事分享f5(),所以我只需要复制f5()并粘贴到他们

案例2:我想共享f3(),所以我想复制f3()和递归的f2()f1()

案例3:我想共享f4(),所以我想复制f3()和递归的f2()f1();但是我只想复制f1()一次,即使f1()f3()f2()中都被调用。

现在,我手动查找和复制,但它容易出错;它可以自动完成吗?我不使用Python。假设所有函数都位于同一个.bashrc文件中,那么所有函数都是由我定义的bash函数。

EN

回答 1

Unix & Linux用户

发布于 2023-02-15 12:00:47

看看flatten.sh。我写了这些,这样我就可以把我所有的别名和函数输入到一个shell脚本中,然后把它压缩到需要的地方,所以现在的情况也是一样的。

因此,对于像这样的example.lib (或者您的.bashrc ):

代码语言:javascript
复制
f1() {
  echo "I am f1"
}

f2() {
   f1
}

f3() {
   f2
}

f4() {
   f1
   f3
}

f5() {
  :
}

还有这样一个脚本example.sh

代码语言:javascript
复制
#!/usr/bin/env -S bash - 
. /path/to/example.lib

f4

您运行flatten.sh example.sh并获得

代码语言:javascript
复制
#!/usr/bin/env -S bash - 
f1() {
  echo "I am f1"
}

f2() {
   f1
}

f3() {
   f2
}

f4() {
   f1
   f3
}

f4
票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/735591

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档