为什么 `wc -m` 多算 1 个字符?

为什么 `wc -m` 多算 1 个字符?

为什么从(<<<)wc -m多算一个字符(符号)here-string

以下是示例:

$ TEST_STR="askubuntu"
$ echo "$TEST_STR"
askubuntu
$ wc -m <<<"$TEST_STR"
10

虽然说是 10,但实际上只有 9 个符号。

同样的问题也出现在wc -c

答案1

因为 Bash这里的字符串添加尾随换行符。

以下是证明:

$ TEST_STR="askubuntu"
$ echo "$TEST_STR"
askubuntu
$ od -c <<<"$TEST_STR"
0000000   a   s   k   u   b   u   n   t   u  \n
0000012

此外,还有一些很好的答案解释了为什么应该有换行符:

  1. 为什么这里的字符串添加换行符?
  2. 为什么那里应该有换行符?

相关内容