我正在做一个项目,它要求一系列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命令,因为我计划将来使用此程序的限制 - 我不认为这与此问题相关。
答案 0 :(得分:0)
您只想将shell脚本传递给Python脚本:
./echoex.sh | python acceptinput.py
管道包含用于未读输出的缓冲区。如果缓冲区已满,则操作系统将暂停编写器,直到读取器占用一些缓冲区。同样,如果缓冲区为空,则OS会暂停读取器,直到写入程序将某些内容放入缓冲区。在读者准备好之前,作者不需要明确地睡觉。