Оболочка языков программирования - PullRequest
2 голосов
/ 04 марта 2012

У меня есть веб-приложение на Python, и я хотел бы запустить из него несколько скриптов.Скрипты написаны на разных языках, таких как 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 ]

5 голосов
/ 04 марта 2012

Я бы разработал сценарии так, чтобы они принимали аргументы командной строки , читали общий файл конфигурации или читали переменные среды вместо попыток изменить внутренние компоненты из сценариев.

Вы действительно хотите, чтобы ваше веб-приложение Python изменило код C ++, перекомпилировало его и затем запустило? Что-то в этом мне кажется неправильным. Это, вероятно, будет медленно.

5 голосов
/ 04 марта 2012

Звучит так, как вы хотите m4 , что бы легко справиться с этим для всех языков сценариев. C ++, будучи скомпилированным языком, был бы совершенно другим делом, но я предполагаю, что вы на самом деле не это имели в виду.

Существует несколько бесплатных реализаций m4; это уже будет на каждой коробке Linux.

Вы определенно не хотите SWIG, он делает что-то совершенно другое.

...