В среде Unix я хочу использовать tee
на цепочке команд как так:
$ echo 1; echo 2 | tee file
1
2
$ cat file
2
Почему делает file
только закончите как наличие вывода от заключительной команды?
В целях этого обсуждения давайте предположим, что я не могу разбить их и выполнить команды отдельно.
Попробуйте:
( echo 1; echo 2 ) | tee file
Без скобок он анализируется как:
echo 1 ; ( echo 2 | tee file )
Он содержит только вывод второй команды, поскольку точка с запятой указывает оболочке новый оператор.
Просто заключите их в скобки:
(echo 1; echo 2) | tee file