使用bash脚本

时间:2018-02-22 15:50:38

标签: python bash

我正在做一个项目,它要求一系列echo命令被并行运行的python函数接受为输入。我正在使用两个bash脚本和一个python脚本:

echoex.sh:

#! /bin/bash

sleep 5
for i in 'seq 1 50';
    do
        echo test
    done

inputmain.sh:

#! /bin/bash

./echoex.sh &
python acceptinput.py

acceptinput.py的一部分:

for i in range(50) :
    invar = raw_input()
print("DONE")

“echoex.sh”脚本应该在后台运行,因为“&”应该从我的理解开始运算符和python脚本。我甚至在“echoex.sh”中等待5秒钟以确保“acceptinput.py”已经在运行。

在“echoex.sh”完成后,“acceptinput.py”运行,并且没有任何内容输入变量“invar”。我无法在python脚本之后运行echo命令,因为我计划将来使用此程序的限制 - 我不认为这与此问题相关。

1 个答案:

答案 0 :(得分:0)

您只想将shell脚本传递给Python脚本:

./echoex.sh | python acceptinput.py

管道包含用于未读输出的缓冲区。如果缓冲区已满,则操作系统将暂停编写器,直到读取器占用一些缓冲区。同样,如果缓冲区为空,则OS会暂停读取器,直到写入程序将某些内容放入缓冲区。在读者准备好之前,作者不需要明确地睡觉。