Вы хотите прочитать руководство xargs
и найти -L
и флаги -P
.
tail -f logfile.log | grep 'patternline' |
xargs -P 4 -L 1 bash scriptname.sh
Это будет выполнять не более четырех экземпляров команды за раз ( -P 4
) и с одной строкой ввода для каждого вызова ( -L 1
).
Добавьте -t
в xargs
, чтобы увидеть, что будет выполнено.
Хотя $'''
в наши дни довольно переносимо (например, BSD sh
поддерживает if, хотя его нисходящий форк dash
не поддерживает), POSIXLY:
eval 'printf "%s\n" "${datetime##*"'"$(printf '\n"')}\""
... будет работать, даже если это раздражает. Однако я обычно храню новую строку в переменной $nl
, и поэтому:
printf "%s\n" "${datetime##*$nl}"
... гораздо удобнее. И, конечно, вы можете просто сделать:
printf "%s\n" "${datetime##*"
"}"
..., но это выглядит немного забавно, возможно.