Even if I leave it blank, it still somehow counts one character [. . .] Could somebody please help me identify this problem?
Experimente printf em vez de echo
$ echo "" | wc -m
1
$ printf "" | wc -m
0
Usando echo , wc contará um caractere de nova linha.
Ou, talvez melhor, use Bash puro sem canalizar para wc :
$ string=foobar
$ echo "${#string}"
6