São 32 caracteres! O md5sum
está adicionando um avanço de linha ao final. Você pode se livrar disso assim:
% echo -n string | md5sum|awk '{print $1}'|wc -c
33
% echo -n $(echo -n string | md5sum|awk '{print $1}')|wc -c
32
ou você pode fazer assim:
% echo -n $(md5sum <<< 'string'|awk '{print $1}')|wc -c
32
Você pode dizer quando um dos comandos está adicionando uma nova linha, porque a cadeia de 32 caracteres aparecerá em sua própria linha. Se nenhuma nova linha estiver presente, ela deve sempre aparecer assim:
[prompt %] echo -n $(md5sum <<< 'string'|awk '{print $1}')
b80fa55b1234f1935cea559d9efbc39a[prompt %]