Unix и мишень — цепочка команд

В среде Unix я хочу использовать tee на цепочке команд как так:

$ echo 1; echo 2 | tee file
1
2

$ cat file
2

Почему делает file только закончите как наличие вывода от заключительной команды?

В целях этого обсуждения давайте предположим, что я не могу разбить их и выполнить команды отдельно.

5
задан Jonathan Leffler 10 July 2015 в 03:00
поделиться

2 ответа

Попробуйте:

 ( echo 1; echo 2 ) | tee file

Без скобок он анализируется как:

 echo 1 ; ( echo 2 | tee file )
4
ответ дан 14 December 2019 в 01:03
поделиться

Он содержит только вывод второй команды, поскольку точка с запятой указывает оболочке новый оператор.

Просто заключите их в скобки:

(echo 1; echo 2) | tee file
5
ответ дан 14 December 2019 в 01:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: