Используя GNU Parallel:
(echo abc; sleep 10; echo def;sleep 10; echo def;)|parallel -uj1
-u требуется, чтобы получить вывод немедленно. Без команды будет работать, но вывод будет напечатан только позже.
-j1 заставляет запустить один рабочий участок. Если оставить его, GNU Parallel прочитает n заданий перед запуском, где n = количество ядер.