你知道是否有任何编译bash脚本的工具?
只要翻译结果可以编译,该工具只是一个翻译器(例如,将bash脚本转换为C程序的东西)并不重要。
我正在寻找类似shc的东西(这只是一个例子 - 我知道shc不能用作编译器)。还有其他类似的工具吗?
答案 0 :(得分:6)
Google搜索会显示CCsh,但会为每台计算机提供50美元的许可证。
文档说CCsh将Bourne Shell(而非bash ...)脚本编译为C代码,并且它理解如何复制50多个标准命令的功能,而不需要fork
它们。
但CCsh不是开源的,所以如果它不能满足您的需求(或期望),您将无法查看源代码来找出原因。
答案 1 :(得分:1)
我认为你不会找到任何东西,因为你无法真正“编译”一个shell脚本。您可以编写一个简单的脚本,将所有行转换为system(3)
的调用,然后将其“编译”为C程序,但这不会对您当前使用的任何内容产生重大性能提升,也可能不会正确处理变量。不要这样做。
“编译”shell脚本的问题是shell脚本只调用外部程序。
答案 2 :(得分:0)
从理论上讲,你实际上可以获得良好的性能提升。
想想所有的
if [ x"$MYVAR" == x"TheResult" ]; then echo "TheResult Happened" fi
(注意测试的调用,然后是echo,以及需要完成的解释。)
可以替换为
if ( !strcmp(myvar, "TheResult") ) printf("TheResult Happened");
在C中:没有进程启动,无需进行路径搜索。很多善良。