我想从 python 脚本暂停 bash 脚本,步骤如下所示:
我从 python script reader.py 开始 script writer.sh。
当 writer.sh 输出第三行时,我希望使用
reader.py
.我想使用一些命令恢复 writer.sh 的执行
reader.py
。
这是这两个脚本,问题是writer.sh
在执行 sleep 命令时不会暂停reader.py
。writer.sh
所以我的问题是,当它输出字符串“third”时如何暂停?确切地说(这是我工作中的实际问题)我想writer.sh
停下来,因为reader.py
停止读取writer.sh
.
reader.py
:
import subprocess
from time import sleep
print 'One line at a time:'
proc = subprocess.Popen('./writer.sh',
shell=False,
stdout=subprocess.PIPE,
)
try:
for i in range(4):
output = proc.stdout.readline()
print output.rstrip()
if i == 2:
print "sleeping"
sleep(200000000000000)
except KeyboardInterrupt:
remainder = proc.communicate()[0]
print "remainder:"
print remainder
writer.sh
:
#!/bin/sh
echo first;
echo second;
echo third;
echo fourth;
echo fith;
touch end_file;
相关问题是,如果 script1 输出文本行,例如script1 | script2
,并且 script2 在读取第三行输入后暂停,是否会在 Linux 上使用管道暂停 script1?