如何通过命令从另一个程序执行代码

时间:2014-03-26 23:07:59

标签: python c++ shell

我正在考虑如何设计一个程序,该程序由于所有事件而检查命令文件(它基本上保存键值对,其中键是命令,并且value是要执行的代码)并运行该命令的匹配代码。 它将在unix / linux机器上运行。

为简单起见,该计划如下: 它会等待用户的输入。当用户输入有效命令(即命令文件中出现的命令)时,将执行匹配代码。如果它没有匹配任何命令,它将打印"没有匹配的命令"。

因此,如果我的命令文件如下:

run1='a.py'
run2='b.py'

我输入" run1"那么a.py将被执行。如果我输入" run3"那么"没有匹配的命令"将被打印。

我想在C ++中实现这一点,我已经看到类似的实现,人们使用system()来执行命令,但这感觉是一种不好的方法来实现这一点。

我还有什么其他方法可以实现这个目标?

p.s - 我在我的例子中写道,正在运行的代码是在python中。我不确定我是否希望这是唯一的选择(因此我需要能够确定类型。让我们假设我能做到这一点)。 这仍然可以实现吗?

1 个答案:

答案 0 :(得分:1)

有很多选择。 system("a.py");将执行您想要的操作(假设在正在运行的系统上正确安装了python)。如果这是“最佳”解决方案,实际上取决于您想要实现的目标,而且您的问题并不完全清楚。

大多数其他解决方案或多或少都是系统特定的。例如,你可以在Unix / Linux中使用fork()exec() [python作为实际可执行文件,并"a.py"作为在python中运行的文件]的一种风格,但是在Windows中你不得不使用,例如,spawn()(再次使用python作为可执行文件,例如"a.py"作为要运行的代码)。