编程语言包装器

时间:2012-03-04 02:53:30

标签: c++ python bash swig

我有一个python Web应用程序,我想从中运行多个脚本。脚本是用各种语言编写的,比如bash,lua,perl,c ++,ruby等。问题是我想首先解析脚本以用实际数字替换预定义的构建块。例如,假设我有以下bash脚本:

#!/bin/bash

ping -c 3 {{ip}}

然后我想将该脚本传递给包含脚本所需的所有变量的包装器 - 在本例中只是 ip 变量。包装器应该用实际值替换所有变量,因此如果我们将ip变量输入为值= 10.1.1.1,那么脚本应该变为:

#!/bin/bash

ping -c 3 10.1.1.1

我希望所有编程语言都能使用此功能。所以我使用python,它应该使用某种接受脚本+参数的包装器,并输出相应的输出脚本。

我已经找到了swig,但不知道它是否符合我的要求,所以建议非常感谢。

谢谢

2 个答案:

答案 0 :(得分:5)

听起来你想要m4,它可以轻松处理所有脚本语言。 C ++,作为一种编译语言,将是一个完全不同的事业,但我认为你并不是真的意思。

有多个免费的m4实现;它已经存在于每个Linux机器上。

你绝对不希望SWIG,它会做一些完全不同的事情。

答案 1 :(得分:5)

我会设计脚本以获取命令行参数,读取常见的配置文件,或者读取环境变量,而不是尝试修改脚本的内部。

您真的要让您的Python Web应用程序修改C ++代码,重新编译它,然后运行它吗?关于这一点似乎对我来说是错误的。它可能会很慢。