echo $SHELL
/bin/bash
echo $SHELL | wc -c
10
echo ${#SHELL}
9
Run Code Online (Sandbox Code Playgroud)
$SHELL(eg /bin/bash) 中的字符数是 9,那么为什么使用时结果是 10wc -c呢?
这是因为echo. 当你输入:
$ echo $SHELL
/bin/bash
$
Run Code Online (Sandbox Code Playgroud)
echo打印一个换行符,该字符计入wc字符数。
另一方面${#SHELL}是壳扩展。由于echo还没有实际运行,shell 使用没有额外换行符的扩展来执行字符计数。所以echo ${#SHELL}实际上转化为echo 9. 将9印刷有由添加了尾随新行echo。