我有一个来自python的循环,它将代理写入文件,每行一个。稍后使用curl -x $PROXY
通过cat proxies.txt
从bash脚本中使用该文件。
这种方法是否可以通过同时启动这两个脚本来改进,并且只有当python写入新行/新代理时才使用cat
可以使用的命名管道?
在我看来,我会写一些像
这样的东西f = open('/tmp/proxies', 'w') # but this call is blocking!
for proxy in ...:
f.write(proxy)
和
for PROXY in $(cat /tmp/proxies); do curl -x $PROXY example.com; done
答案 0 :(得分:1)
关于阻止FIFO的许多评论;我不会重复它们,但主要问题是:当没有进程读取时,写入过程被阻止。
您可能正在寻找的代码是这样的:
#!/bin/bash
python the_python_script.py & # start in the background
tail -f /tmp/proxies| while read px; do
curl -x $px example.com
done
当python脚本死掉时,应该有一些逻辑来终止bash脚本。