shell - 生成shell脚本调用树

标签 shell scripting graph-visualization

我接到了一个由几十个(可能超过 100 个,我没有计算过)bash 脚本组成的项目。大多数脚本至少对另一个脚本进行一次调用。我想获得等效的调用图,其中节点是脚本而不是函数。

有没有现有的软件可以做到这一点?

如果没有,是否有人对如何做到这一点有聪明的想法?

我能想到的最佳计划是枚举脚本并检查基本名称是否唯一(它们跨越多个目录)。如果有重复的基本名称,那就哭吧,因为脚本路径通常保存在变量名称中,因此您可能无法消除歧义。如果它们是唯一的,则 grep 脚本中的名称并使用这些结果来构建图形。使用一些工具(建议?)来可视化图表。

建议?

最佳答案

通过您的实现包装 shell 本身,记录谁调用了您的包装器并执行原始 shell 。

是的,您必须启动脚本才能确定真正使用的是哪个脚本。否则,您需要一个与 shell 引擎本身具有相同知识的工具来支持整个变量扩展、路径等——我从未听说过这样的工具。

为了可视化调用图,请使用 GraphViz的点格式。

关于shell - 生成shell脚本调用树,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5109692/

相关文章:

javascript - 使用 Force Layout 从两个不同的 csv 文件中读取节点和边

regex - 如何匹配直到最后一次出现 bash shell 中的字符

linux - 计算 shell 脚本每一步的时间并显示总执行时间

javascript - 如何在D3中保留线条颜色

linux - 用于从另一个文件的 block 组成文件的 shell 命令

windows - 阅读消息框的文本并使用VBScript存储在变量中

javascript - 在 Javascript 中链接可视化库

linux - 有没有Linux命令行环境的网站,可以练习命令?

java - 为什么在 java servlet 中运行的 shell 脚本文件中需要 hibernate

node.js - 在nodejs代码中执行多个终端命令