2016-04-15 7 views
0

выполнения это заявление рассматривает все команды после «:» в течение циклаPython командной строки «-c» причуда

python -c 'for a in range(10):print(a);x=123;print(x) 

Я хочу, чтобы указать интерпретатора, что «х = 123;» и после того, как вышли из петли ...

любые улики ...

+2

В какой ты раковине? В bash введите 'python -c 'для диапазона in (10): print (a) x = 123; print (x)'. Bash не запускает команду до тех пор, пока строка не будет завершена. – NoOneIsHere

+0

can not use ... – ZEE

+1

Я не знаю, можете ли вы сделать это с помощью -c args, но вы можете использовать эхо и трубку. 'echo -e 'для диапазона in (10): print (a) \ nx = 123 \ nprint (x)' | python' – luisurrutia

ответ

0

Per https://docs.python.org/2/using/cmdline.html:

-c Исполнить код Python в команде. команда может быть одним или несколькими операторами, разделенными символами новой строки, со значительными ведущими пробелами, как в коде нормального модуля.

Так что, если ваша оболочка любой из Баша, ш, или КШ, вы должны быть в состоянии просто форматировать код, как обычно, до тех пор, как он полностью в одинарных кавычках (то есть. Полностью отступ, возврат каретки, и т.д.).

+0

См. Комментарий @ ZEE относительно новых строк. – NoOneIsHere

+0

Точно так же, как FYI для тех, кто меня ниспровергал, давая положительный ответ, который был отправлен. В то же время дополнительное, противоречивое ограничение было добавлено. Это действительно, ** действительно отличный способ гарантировать, что я больше никогда не буду пытаться обеспечить помочь плакату. –

+0

Я не спустил вниз. Я просто указывал на это. – NoOneIsHere