我实际上正在寻找一个 bash 脚本,它可以监视文件,执行文件中的每个新行,然后删除该行。处理完所有文件后,脚本必须等待新行。
我寻找任何答案,但除了阅读文件中的每一行之外,几乎没有找到任何答案。
顺便问一下,bash 在完成这样的任务时效率高吗?或者我应该编写一个小的 C 程序来执行此任务?
答案1
除了从文件中删除行之外,下面的操作将执行您要求的所有操作:
$ ./script && tail -n0 -f script | while read line; do eval "${line}"; done;
首先,只需执行文件,然后滥用 tail 和 eval,您就可以很容易地近似您想要的行为。
答案2
如果不必删除该行,您也可以尝试:
tail -f filename | parallel eval "{}"