Длинные программы, использующие переключатель python -c

Я хотел бы использовать python для вещей, которые я делал, используя bash. Можно ли использовать ключ -c для длинных программ, например цикл for с двумя операторами? Это позволит мне использовать python непосредственно из командной строки, как bash или php.

Благодарю.

EDIT: Не знаю, как я пропустил это, просто выполнив python -c ', а затем нажав enter делает то, что я хотел сделать. Я пробовал много вариаций, а один использовал \, но это не сработало, поэтому я задал вопрос. например

$python -c ' >print "x" >for i in range(3): > print "y" ' 

делает то, что я хотел сделать, хотя ответ Рода тоже выглядит хорошо.

Нет проблем, если ваша базовая оболочка bash, так как вы можете продолжить аргумент через несколько строк, если открытая ' (цитата) еще не закрыта – например:

 $ python -c'for x in range(3): > if x!=1: > print x' 0 2 $ 

> Bash по умолчанию PS2 , «многострочное приглашение продолжения», в отличие от $ , AKA PS1 , обычное приглашение «начать вводить команду».

Если вы не можете использовать такое многострочное продолжение, несколько вложенных операторов блока (например, if внутри цикла) могут быть проблематичными.

Вы можете использовать составные операторы, используя запятую, чтобы разграничить операторы, например

 python -c "for x in range(0,3) : print x; print x 

Тогда выход будет следующим:

 0 0 1 1 2 2 

см. http://docs.python.org/reference/compound_stmts.html

Когда используется внутри скрипта, я думаю, было бы лучше, если бы python прочитал скрипт со стандартного ввода, например:

 #!/bin/bash python - arg1 arg2 <<END import sys print 'Arg:', sys.argv[1:] END 

Это использует синтаксис HEREDOC для bash.

Если вы используете сценарий bash, просто используйте кавычки:

 #!/bin/sh python -c 'import os for i in range(3): for j in range(3): print i*j ' echo "done" 

В противном случае, используя линию cmd, используйте ; точки с запятой, чтобы разделить операторы или снова использовать одинарные кавычки для переноса на следующую строку:

 python -c 'import os > for i in range(3): > for j in range(3): > print i*j > '