Рассмотрим следующий игрушечный пример (что я действительно делаю сложнее), где я хочу получить две части информации из одной и той же последовательности команд:
echo 'cats pajamas
hatori hanso
batterang
catwoman
fratstar' > tmp1
answer1=$(grep 'cat' tmp1)
answer2=$(grep 'cat' tmp1 | wc -l)
По сути, я ищу способ, которым нужно только выполнить более раннюю команду (и) в последовательности, в данном случае grep
, один раз, все еще получая точно те же значения, хранящиеся в переменныхanswer1
и answer2
.Я полагаю, что это будет работать как разделение канала (так сказать) на answer1
и wc -l
, с выходом последнего, идущим на answer2
.
Обратите внимание, что использование переменной переменной или файла для хранения вывода grep
изменит то, что возвращает wc -l
.Это мотивирует мой выбор этого игрушечного примера и ограничивает актуальность this , я думаю. Этот вопрос кажется связанным, однако мне не ясно, как можно назначить промежуточную часть другой переменной.Я в настоящее время на bash
, хотя альтернативные оболочки являются вариантом.