Разрешение отклонено при передаче в файл

Я пытаюсь передать вывод команды «git pull» как в файл, так и в стандартный вывод, используя следующий скрипт:

STD_OUT=`mktemp`
git pull | $STD_OUT
rm -f $STD_OUT

Это приводит к:

./test.sh: line 2: /tmp/tmp.BITQRbsMSI: Permission denied
error: git-pull died of signal 13

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


person Hugh Powell    schedule 17.01.2014    source источник


Ответы (1)


«Передача в файл» не является допустимой операцией в bash (или любой другой оболочке). То, что следует за |, должно быть командой. Если вы хотите перенаправить вывод операции git в файл, используйте оператор перенаправления >:

git pull > $STD_OUT
person dg99    schedule 17.01.2014
comment
Так можно ли перенаправить как в файл, так и в стандартный вывод? - person Hugh Powell; 18.01.2014
comment
Да, для этого есть специальная команда Unix, которая называется tee. Синтаксис там будет git pull | tee $STD_OUT. - person dg99; 18.01.2014