Python Bash 脚本开始

Python Bash script start

基本上,我正在尝试使用 Python 运行 多处理,这将利用 telnet 到服务器以发送 HTTP 请求。该请求记录在 request.txt 完整请求 header 中。

在我的 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
     ''')