I would like to use python for things I've been doing using bash. Is it possible to use the -c switch for long programs, e.g. a for loop with two statements? This would let me use python directly from command line, just like bash or php.
Thanks.
EDIT: Don't know how I missed it, simply doing a python -c ' and then pressing enter does what I've wanted to do. I'd tried a lot of variations, and one using a \ but that didn't work, so I asked the question. e.g.
$python -c '
>print "x"
>for i in range(3):
> print "y" '
does what I wanted to do, though Rod's answer looks good too.
If you are running from a bash script, just use quotes:
Otherwise, if using the cmd line, use
;
semicolons to seperate statements, or use single quotes again to wrap around to the next line:No problem if your underlying shell is bash, since you can continue an argument across multiple lines if an opened
'
(quote) is not yet closed -- e.g.:The
>
is bash's defaultPS2
, the "multi-line continuation prompt", as distinguished from$
, AKAPS1
, the normal "start entering a command" prompt.If you can't use such multi-line continuation, multiple nested block statements (such as an
if
within a loop) could otherwise be problematic.When used inside a script, I think it would be better to have python read the script from standard input, like so:
This uses bash's HEREDOC syntax.
You can use compound statements, using the semi-colon to delimiter the statements, such as
Then output would then be:
see http://docs.python.org/reference/compound_stmts.html