Q1: I'd like to know how to do this using a command that does not require copy and pasting of the first output's checksum (if it's possible).
Bash
não fornece nenhum mecanismo para recuperar qualquer saída do comando executado anteriormente. Você tem que capturá-lo explicitamente se você pretende agir em qualquer comando subsequente.
Q2: I'd like to know the simplest way to do this using a command that does require copy and pasting of the first output's checksum. (Simply attempting to use grep on a double‐quoted pasted checksum (i.e., as a string) doesn't work.)
Portanto, a sua única opção aqui é copiar / colar a saída do comando anterior. Com relação a porque isso não estava funcionando para você quando você tentou. Isso provavelmente falhou porque quando você usa echo <sha1sum>
você introduziu um caractere adicional, uma nova linha ( \n
) que alterou a sequência de soma de verificação.
Ao fazer o eco de strings para qualquer uma das funções hash como md5
ou sha256sum
, geralmente é melhor fazer um echo -n <..>
, que diz a echo
para omitir a anexação de uma nova linha no final da string.
Você pode ver como isso pode influenciar todas as chamadas para uma função hash da seguinte forma:
$ echo "blah" | sha256sum
41af286dc0b172ed2f1ca934fd2278de4a1192302ffa07087cea2682e7d372e3 -
$ echo -n "blah" | sha256sum
8b7df143d91c716ecfa5fc1730022f6b421b05cedee8fd52b1fc65a96030ad52 -
O verdadeiro hash da string 'blah' é a segunda chamada.