Я пытаюсь понять различия между этими двумя подобными командами.Замена команд и замена процесса
aa=$(foo | bar | head -1)
read aa < <(foo | bar | head -1)
- Я знаю, что
<()
требует#!/bin/bash
, но это делает его медленнее? - Создают ли они такое же количество подоболочек?
- Требуется ли такое же количество
bash
илиsh
процессов?
Я ищу, чтобы использовать команду с наилучшей производительностью.
Хм, это не совсем правильно, как указано. Надеюсь, ты не против, я немного изменил это для тебя. В обоих случаях есть «файловые дескрипторы», и оба они всегда создают подоболочку, которая, по крайней мере, в Bash также всегда подразумевает по крайней мере одну вилку. В моих более обобщенных тестах разница между «read -rx <<(...)» и «x = $ (...)» почти неизмерима как с итерациями с небольшими входами, так и для одиночных больших входов , причем назначение было немного быстрее (как и ожидалось), но в исходном вопросе оба решения были нечетными и субоптимальными. – ormaaj
Без проблем, спасибо за редактирование. –