Почему `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 Here добавляют завершающий символ новой строки.
Вот доказательство:
$ TEST_STR="askubuntu"
$ echo "$TEST_STR"
askubuntu
$ od -c <<<"$TEST_STR"
0000000 a s k u b u n t u \n
0000012
Кроме того, есть несколько хороших ответов, которые объясняют, почему символ новой строки должен быть там: