【发布时间】:2011-02-24 19:51:12
【问题描述】:
我收到了一个由几十个(可能超过 100 个,我没有计算过)bash 脚本组成的项目。大多数脚本至少调用另一个脚本。我想得到一个调用图的等价物,其中节点是脚本而不是函数。
是否有任何现有的软件可以做到这一点?
如果没有,是否有人对如何做到这一点有聪明的想法?
我能想出的最佳计划是枚举脚本并检查基本名称是否唯一(它们跨越多个目录)。如果有重复的基本名称,那就哭吧,因为脚本路径通常保存在变量名中,因此您可能无法消除歧义。如果它们是唯一的,则 grep 脚本中的名称并使用这些结果来构建图表。使用一些工具(建议?)来可视化图表。
建议?
【问题讨论】:
-
Graphviz 是一个很好的可视化工具,但在将其传递给 graphviz 之前,您需要以某种方式预处理您的 basename 输出。您可以尝试使用 bashdb 来调试您的脚本。
-
这些天我经常做的是在我创建的每个脚本的开头添加一个 Depends: 注释。在更大范围内作为事后的想法可能不可行,但这是一个非常简单的约定,对我很有帮助。
标签: shell scripting graph-visualization