Можно ли выполнить команды python, переданные как строки, используя python -c? может кто-нибудь дать пример.
Выполнять команды python, переданные как строки в командной строке, используя python -c
Ответ 1
Для одной строки вы можете использовать python -c. Но для строк, как задает вопрос, вы должны передать их в stdin:
$ python << EOF
> import sys
> print sys.version
> EOF
2.7.3 (default, Apr 13 2012, 20:16:59)
[GCC 4.6.3 20120306 (Red Hat 4.6.3-2)]
Ответ 2
Вы можете использовать -c, чтобы заставить Python выполнять строку. Например:
python3 -c "print(5)"
Однако, похоже, не существует способа использовать escape-символы (например, \n). Поэтому, если они вам понадобятся, используйте трубку от echo -e или printf. Например:
$ printf "import sys\nprint(sys.path)" | python3
Ответ 3
Python имеет eval. Попробуйте script.
import sys
str = sys.argv[1]
eval(str)
Вызвать это следующим образом:
$ python3 eval.py 'print(1 + 1)'
2