wc -m
がhere-string
(<<<)からさらに1文字(シンボル)をカウントする理由
以下に例を示します。
$ TEST_STR="askubuntu"
$ echo "$TEST_STR"
askubuntu
$ wc -m <<<"$TEST_STR"
10
10と言っていますが、実際には9つのシンボルしかありません。
wc -c
についても同じ問題が発生します
BashHerestringsが末尾の改行文字を追加するためです。
ここに証拠があります:
$ TEST_STR="askubuntu"
$ echo "$TEST_STR"
askubuntu
$ od -c <<<"$TEST_STR"
0000000 a s k u b u n t u \n
0000012
また、改行文字があるべき理由を説明するいくつかの素敵な答えがあります: