Eu tenho um comando muito simples que gera STDOUT que eu quero fazer, /dev/null
mas de alguma forma não está funcionando ou estou faltando algo aqui.
$ ldapsearch -Y GSSAPI -b "cn=users,cn=accounts,dc=example,dc=com" "uid=foo" | grep krbPasswordExpiration | tail -n1 | awk '{print $2}'
SASL/GSSAPI authentication started
SASL username: [email protected]
SASL SSF: 256
SASL data security layer installed.
20200608022954Z <---- This is my krbPasswordExpiration value.
Mas se você vir na linha de comando acima SASL
, que é apenas stdout, que eu quero fazer /dev/null
, tentei seguir, mas parece que não está funcionando.
$ ldapsearch -Y GSSAPI -b "cn=users,cn=accounts,dc=example,dc=com" "uid=foo" | grep krbPasswordExpiration | tail -n1 | awk '{print $2}' 2> /dev/null
que outra maneira eu posso me livrar dele?
Você precisa estar ciente de qual comando está fazendo a saída para stderr e certificar-se de que o redirecionamento esteja associado a esse comando.
Você pode pensar em pipes como tendo ( ) em torno dos comandos
Então
pode ser pensado como
(Não é literalmente assim que funciona, mas é um modelo mental).
E o redirecionamento acontece dentro dos colchetes.
Então é claro que
não redireciona a mensagem de erro de "a"
mas
faz
E assim, seu comando redirecionou o erro do
awk
comando. Você realmente deseja redirecionar o erro deldapsearch
.Então