Tome o seguinte comando (exemplo real):
~$ gpg --edit-key [email protected] showpref quit
(...)
[ultimate] (1). Foo Bar <[email protected]>
Cipher: AES256, AES192, AES, CAST5, 3DES
AEAD:
Digest: SHA256, SHA1, SHA384, SHA512, SHA224
Compression: ZLIB, BZIP2, ZIP, Uncompressed
Features: MDC, AEAD, Keyserver no-modify
Preferred keyserver: ldap://keyserver.pgp.com
~$
Canalizar a saída para a | grep
não funciona:
~$ gpg --edit-key [email protected] showpref quit | grep Compression
(...)
[ultimate] (1). Foo Bar <[email protected]>
Cipher: AES256, AES192, AES, CAST5, 3DES
AEAD:
Digest: SHA256, SHA1, SHA384, SHA512, SHA224
Compression: ZLIB, BZIP2, ZIP, Uncompressed
Features: MDC, AEAD, Keyserver no-modify
Preferred keyserver: ldap://keyserver.pgp.com
~$
Existe uma maneira de fazer isso funcionar? Por exemplo, o resultado que gostaria de obter é:
~$ gpg --edit-key [email protected] showpref quit | grep Compression
Compression: ZLIB, BZIP2, ZIP, Uncompressed
~$
[EDITAR: o que tentei até agora]:
@steeldriver, @RomeoNinov: Não acho que o redirecionamento stderr
vá resolver o problema. Não parece que gpg
a saída de vai para stderr
.
Basicamente, gpg
é um comando interativo, mas o lançamento gpg ... cmd1 cmd2
o torna não interativo (por exemplo, gpg ... showpref quit
é o mesmo que fazer interativamente showpref
seguido pelo shell quit
in ).gpg
@steeldriver:
~$ gpg --edit-key [email protected] showpref quit 2> >(grep Compression)
(...)
[ultimate] (1). Foo Bar <[email protected]>
Cipher: AES256, AES192, AES, CAST5, 3DES
AEAD:
Digest: SHA256, SHA1, SHA384, SHA512, SHA224
Compression: ZLIB, BZIP2, ZIP, Uncompressed
Features: MDC, AEAD, Keyserver no-modify
Preferred keyserver: ldap://keyserver.pgp.com
~$
@RomeoNinov:
~$ gpg --edit-key [email protected] showpref quit 2>&1| grep Compression
(...)
[ultimate] (1). Foo Bar <[email protected]>
Cipher: AES256, AES192, AES, CAST5, 3DES
AEAD:
Digest: SHA256, SHA1, SHA384, SHA512, SHA224
Compression: ZLIB, BZIP2, ZIP, Uncompressed
Features: MDC, AEAD, Keyserver no-modify
Preferred keyserver: ldap://keyserver.pgp.com
~$
A solução é usar
--batch
. Isso ajudarágpg
a enviar informações para manipuladores de arquivos padrão.