Eu executo o seguinte comando:
pkg_add emacs-23.4,2.tbz 2> output.log
A saída ainda é exibida no terminal. Quando pressiono ↑, recebo
pkg_add emacs-23.4,2.tbz 2 > output.log
com um espaço antes do2
.
Eu não coloquei isso originalmente. eu tento
pkg_add emacs-23.4,2.tbz > output.log 2>&1
Mais uma vez, quando pressiono ↑, foram adicionados espaços .
Por que isto está acontecendo comigo?
Estou executando o csh no FreeBSD.
command-line
freebsd
io-redirection
csh
gadgetmo
fonte
fonte
sh
.pkg_add
no FreeBSD, então estou assumindo que isso é para o usuário root (/ bin / csh é o padrão para root no FreeBSD). Nesse caso, você não deve alterar o shell para / usr / local / bin / bash. / bin / sh é aceitável. Você também pode mudar para outro shell após fazer login como root.Não tenho certeza se você está tentando ocultar o STDERR ou redirecioná-lo para o STDOUT.
Para redirecionar STDOUT para um arquivo:
Para redirecionar STDOUT e STDERR para um arquivo:
Para redirecionar STDOUT para um arquivo e ocultar STDERR:
Para redirecionar o STDOUT para o console e ocultar o STDERR:
Para redirecionar STDOUT para o console e STDERR para um arquivo:
Para redirecionar STDOUT para um arquivo e STDERR para um arquivo:
EDIT: A razão pela qual isso funciona é que a ação no () acontece primeiro; Portanto, se redirecionarmos o STDOUT, ele não estará mais disponível fora dos (). Isso nos deixa com apenas STDERR e podemos redirecioná-lo conforme desejado.
fonte
Eu sei como fazê-lo no Csh, mas usando 2 conchas:
Dessa maneira, você pode redirecionar apenas o stderr para o arquivo.txt, sem o stdout - ou seja, o que você deseja.
fonte