Accidentalmente, descubrí que wccuenta de manera diferente dependiendo de cómo obtiene la entrada de bash:
$ s='hello'
$ wc -m <<<"$s"
6
$ wc -c <<<"$s"
6
$ printf '%s' "$s" | wc -m
5
$ printf '%s' "$s" | wc -c
5
¿Es esto, en mi humilde opinión, un comportamiento documentado en alguna parte? ¿Qué wccuenta aquí? ¿Es esta una nueva línea asumida?
bash
newlines
wc
here-string
rexkogitans
fuente
fuente

od -cver exactamente lo que tienes.xxd -g1.printf "$s"no es su guión real ... espero que quería decirprintf "%s" "$s"Respuestas:
La diferencia es causada por una nueva línea agregada a la cadena aquí. Ver el manual de Bash :
wcestá contando de la misma manera, pero su entrada es diferente.fuente
printf %s "$var"(oprint -rn -- "$var"con shells tipo ksh),printf "$var"que no funcionaría correctamente para los valores$varque contienen%caracteres de barra diagonal inversa (o comenzar con la-mayoría de las implementaciones).rcno agregó ese carácter de nueva línea.Es una nueva línea exitosa agregada por el redirector here-string:
fuente