如何使用python -c运行多行

时间:2013-05-13 01:38:51

标签: python

我需要使用python -c来远程运行一些代码,它可以在我使用时运行:

python -c "a=4;print a"
4

python -c "if True:print 'ye'"

python -c "a=4;if a<5:print 'ye'"会产生错误:

File "<string>", line 1
    a=4;if a<5:print 'ye'
    SyntaxError: invalid syntax

我应该怎么做才能使它有效,有什么建议吗?

1 个答案:

答案 0 :(得分:8)

用单引号括起来并使用多行:

python -c '
a = 4
if a < 5:
    print "ye"
'

如果您需要在代码中使用单引号,请使用这个可怕的构造:

python -c '
a = 4
if a < 5:
    print '\''ye'\''
'

这是有效的,因为大多数UNIX shell不会解释单引号之间的任何内容 - 所以我们有一些Python代码,直到我们需要单引号。由于它完全没有被解释,我们不能只是逃避报价;相反,我们结束引用,然后插入一个文字引号(转义,所以它不会被解释为新引号的开头),而最后另一个引号让我们回到未解释的-string状态。它有点难看,但它确实有用。