我實際上正在尋找一個 bash 腳本來監視文件,執行文件中的每個新行,然後刪除該行。當所有文件處理完畢後,腳本必須等待新行。
我搜尋了任何答案,但除了閱讀文件中的每一行之外幾乎找不到任何其他內容。
順便問一下,bash 在執行這樣的任務時是否高效,或者我應該建立一個小 C 程式來完成此任務?
答案1
除了從文件中刪除行之外,以下命令會執行您要求的所有操作:
$ ./script && tail -n0 -f script | while read line; do eval "${line}"; done;
首先,只需執行該文件,然後濫用 tail 和 eval 您可以輕鬆近似您想要的行為。
答案2
如果不需要刪除該線,您也可以嘗試:
tail -f filename | parallel eval "{}"