Unix и тройник - цепочка команд - PullRequest
5 голосов
/ 17 мая 2010

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

$ echo 1; echo 2 | tee file
1
2

$ cat file
2

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

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

Ответы [ 2 ]

5 голосов
/ 17 мая 2010

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

Просто поставьте их в скобки:

(echo 1; echo 2) | tee file
4 голосов
/ 17 мая 2010

Попробуйте:

 ( echo 1; echo 2 ) | tee file

Без скобок он обрабатывается как:

 echo 1 ; ( echo 2 | tee file )
...