Совершенно ясно, как вы хотите отформатировать вывод. Даже если вы используете tee
, вывод будет перенаправлен на wc -l
. Таким образом, вы не увидите вывод echo
.
Я могу придумать обходной путь, чтобы отправить оба вывода echo
и wc -l
в терминал, отправив его на stdout
и stderr
, используя:
$ echo "test" | tee /dev/stderr | wc -l
test
1
Таким образом вы оба отправите на свой терминал через stdout
и stderr
.
Идея использования именованных каналов, опубликованная @DukeLion, тоже хороша.
Для этого можно использовать именованный канал с tee.
создать именованный канал: mkfifo / tmp / testpipe
использовать tee для дублирования вывода на стандартный вывод и канал: эхо "тест" | tee / tmp / testpipe
В этот момент ваша команда зависнет, так как к выходу конвейера ничего не подключено. Вам нужно запустить другую оболочку cat / tmp / testpipe | wc -l
Именованный канал - это файл, но он не выполняет ни дискового ввода-вывода, ни буферизацию памяти.