
На самом деле я ищу скрипт bash, который отслеживает файл, выполняет каждую новую строку в файле и затем удаляет ее. Когда весь файл обработан, скрипт должен ждать новых строк.
Я искал какие-либо ответы, но не нашел ничего, кроме прочтения каждой строчки в файле.
Кстати, эффективен ли bash для решения такой задачи или мне следует написать небольшую программу на языке C для этого?
решение1
Следующий код делает все, о чем вы просите, за исключением удаления строк из файла:
$ ./script && tail -n0 -f script | while read line; do eval "${line}"; done;
Сначала просто запустите файл, а затем, используя tail и eval, вы можете довольно легко добиться желаемого поведения.
решение2
Если удаление линии не является обязательным, вы также можете попробовать:
tail -f filename | parallel eval "{}"