[基本上,我正在尝试使用Python运行多重处理,该过程将利用telnet到服务器以发送HTTP请求。该请求将记录在带有标题的request.txt完整请求中。
在我的python代码中,我已经测试了完整的多重处理,它的工作原理就像魔术。但是,一旦将bash命令放入服务器,将无法正确执行。
我想在Python中复制的是下面的bash示例:
START=
(
cat request.txt
sleep 2
)| telnet 0 999
我在python源代码中所做的是:
os.system("START=\
(\
cat request.txt \
sleep 2 \
)| telnet 0 999\
")
我得到的是:
Trying 0.0.0.0...
Connected to 0.
Escape character is '^]'.
Connection closed by foreign host.
当我通过bash终端手动运行请求时,它可以完美运行而不会出错。但是,当尝试执行python应用程序时,它具有上述行为。
P / S之所以没有发布完整的源代码,是因为我的问题仅与os.system有关-应用程序的bash部分。
谢谢
我不知道这是否是您问题的答案。但是查看您的代码,您的多行字符串的计算结果为START=( cat request.txt sleep 2 )| telnet 0 999
。因此,cat request.txt sleep 2
是一个命令。这可能是问题的原因。您可以在;
之后添加cat request.txt
,然后尝试。
通过这种方式,建议对python中的多行字符串使用三引号,而不是使用\
来转义每一行
添加工作解决方案:
os.system('''START=
(
cat vsip.txt;
sleep 2
)| telnet 0 999
''')