Есть ли способ выполнить команду только после выполнения другой без временного файла? У меня есть одна более длинная команда и другая команда, которая форматирует вывод и отправляет его на HTTP-сервер с помощью curl. Если я просто выполню commandA | commandB, commandBзапустится curl, подключусь к серверу и начну отправку данных. Потому что commandAзанимает так много времени, HTTP-сервер будет тайм-аут. Я могу делать то, что я хочу сcommandA > /tmp/file && commandB </tmp/file && rm -f /tmp/file
Из любопытства я хочу знать, есть ли способ сделать это без временного файла. Я пытался, mbuffer -m 20M -q -P 100но процесс скручивания все еще начинается в самом начале. Mbuffer ждет, пока commandAне закончится фактическая отправка данных. (Данные сами по себе не более нескольких сотен килобайт)
commandAв commandB, не так ли?
commandA && commandB?