4

我需要用来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

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

4

1 回答 1

9

将其括在单引号中并使用多行:

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

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

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

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

于 2013-05-13T01:41:34.317 回答