为什么wc加一

PoG*_*bas 4 bash wc

可以说我有一个很长的词N

word0=`echo` # N = 0  
word1=`echo A` # N = 1
word2=`echo AB` # N = 2
word5=`echo ABCDE` # N = 5
word4=`echo "ABCD"` # N = 4
Run Code Online (Sandbox Code Playgroud)

我用来wc获取 的长度wordN,例如:

echo $word0 | wc 
   1 
echo $word1 | wc 
   2 
echo $word4 | wc 
   5
Run Code Online (Sandbox Code Playgroud)

wc字长加1,结果是N+1

即使有wc -cwc -m我得到N+1

问题:应该wc这样工作吗?如果是这样,为什么要加+1?

Ken*_*ent 10

尝试:

echo -n "stuff"|wc
Run Code Online (Sandbox Code Playgroud)

echo 添加换行符,所以如果按bytesor数的话chars,至少有 1 个

请参阅以下示例:

kent$  echo ""|wc -c
1

kent$  echo -n ""|wc -c
0

kent$  echo  ""|wc -m
1

kent$  echo  -n ""|wc -m
0
Run Code Online (Sandbox Code Playgroud)

如果按“字”数的话,没有区别:

kent$  echo  -n ""|wc -w
0

kent$  echo  ""|wc -w   
0
Run Code Online (Sandbox Code Playgroud)