Acidentalmente, descobri que wc
conta de forma diferente dependendo de como obtém a entrada do bash:
$ s='hello'
$ wc -m <<<"$s"
6
$ wc -c <<<"$s"
6
$ printf '%s' "$s" | wc -m
5
$ printf '%s' "$s" | wc -c
5
Isso é - IMHO confuso - comportamento documentado em algum lugar? O que wc
conta aqui - esta é uma nova linha assumida?
A diferença é causada por uma nova linha adicionada à string here. Veja o manual do Bash :
wc
está contando da mesma forma, mas sua entrada é diferente.É uma nova linha adicionada pelo redirecionador here-string: