无意中,我发现wc
根据从 bash 获取输入的方式不同,计数也不同:
$ s='hello'
$ wc -m <<<"$s"
6
$ wc -c <<<"$s"
6
$ printf '%s' "$s" | wc -m
5
$ printf '%s' "$s" | wc -c
5
这是 - 恕我直言令人困惑 - 行为记录在某处吗?这里算什么wc
——这是一个假定的换行符吗?
答案1
答案2
这是由此处字符串重定向器添加的后续换行符:
$ s="hello"
$ hexdump -C <<<"$s"
00000000 68 65 6c 6c 6f 0a |hello.|
00000006
$ printf "$s" | hexdump -C
00000000 68 65 6c 6c 6f |hello|
00000005