LINUX.ORG.RU

Потому что echo печатает перевод строки после вывода

$ echo 1f4d3f81-544c-ffc2-a798-074b23fb42db147| hexdump -c
0000000   1   f   4   d   3   f   8   1   -   5   4   4   c   -   f   f
0000010   c   2   -   a   7   9   8   -   0   7   4   b   2   3   f   b
0000020   4   2   d   b   1   4   7  \n                                
0000028

Без него будет 39

$ echo -n 1f4d3f81-544c-ffc2-a798-074b23fb42db147|wc -m
39
grazor ★★
()
Ответ на: комментарий от anarquista

В стандарте POSIX ничего про -n, насколько я понимаю, нет.

Вообще-то есть. Но размытое определение, я так понял, что на -n POSIX-допустимо подвесить функционал

A string to be written to standard output. If the first operand is -n, or if any of the operands contain a backslash character, the results are implementation-defined.

С бэкслешами, это что-то вроде нынешнего:

echo -e "aaa\c" | wc -m
dmitry237 ★★★
()
Последнее исправление: dmitry237 (всего исправлений: 1)