Não, shasum
sempre imprime o nome do arquivo do arquivo para o qual ele calcula o hash, ou -
se ler da entrada padrão.
Para evitar o pipe, você pode usar
perl -MDigest::SHA -e '$s=Digest::SHA->new(); $s->add(<>); print $s->hexdigest(),"\n"' filename