我正在运行一些linux命令,但是在linuxeredoc之后,下一个(df)命令没有执行。在
import subprocess
uci = "cav"
dse_db = "gtmgbldir=/cav/gtm/" + uci + "/" + uci + ".gld; \
export gtmgbldir; \
dse << EOF \
dump -fileheader\n\
EOF\n; \
df; \
"
subprocess.call(dse_db, shell=True)
更重要的是,如果heredod内部有错误,它根本不会继续。 我说的是“dsa”命令的一个allert错误。 当然,如果我通过linuxshell手动运行所有命令,那么一切都正常。在
当您使用反斜杠(
\
)继续行时,将不会插入真正的换行符。如果您将字符串放入交互式解释器中,您可以很容易地看到这一点:如您所见,
\
允许您中断行,但它不会产生多行字符串。在要使用多行字符串,应改用三引号:
^{pr2}$那么,您的heredoc字符串是有效的,它可能会工作。在
相关问题 更多 >
编程相关推荐