Python Bash脚本开始

问题描述 投票:0回答:1

[基本上,我正在尝试使用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部分。

谢谢

python bash telnet
1个回答
1
投票

我不知道这是否是您问题的答案。但是查看您的代码,您的多行字符串的计算结果为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
     ''')
© www.soinside.com 2019 - 2024. All rights reserved.