4

我需要使用 -c 选项使用 python 执行多行 python 脚本。

例子:

python -c "
print()
print()
print()"

我确实知道有一种方法可以将所有内容放在一行上并用分号分隔所有内容,即

python -c "print(); print(); print()"

但是我需要执行的脚本略大于 3 行代码,需要写成多行。

任何帮助表示赞赏。

4

1 回答 1

5

你试过你的第一个例子吗?这对我行得通。但是,根据您的代码,如果有双引号,您可以使用单引号。

python -c '
print("hello")
print("two")
print("three")
'

您也可以使用“heredoc”而不添加-c,然后您不必担心引号。这基本上就像从文件中读取它一样。

python <<EOP
print("check")
print('one')
print('"two"')
EOP

可以只是一个唯一的EOP字符串,您可以通过在开头将其放在自己的行上来终止输入。在您不想替换的代码中存在$PATH或或其他 bash 实体的远程情况下,请在第一个周围加上单引号* EOP

# Define variable in the shell (not in python)
MYVAR=Hello

# Without quotes, shell substitution happens
python <<EOP
print("$MYVAR"*3)
EOP

HelloHelloHello

# With quotes, no shell substitution
python <<'EOP'
print("$MYVAR"*3)
EOP

$MYVAR$MYVAR$MYVAR
于 2013-10-28T14:34:48.980 回答