Ele se preocupa com o espaçamento. Se você correr:
sha256sum /dev/null
você recebe
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 /dev/null
(dois espaços). Quando você usa echo
, há apenas um espaço entre as palavras.
A versão 8.13 quer o formato exato em que sua saída está. Se você usar:
echo "$SUM $FILE" | sha256sum -c
(mais uma vez, dois espaços) deve funcionar. As versões mais recentes não se importam com quantos espaços existem, por isso também funcionará com elas.