Можно ли выполнить команды 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