Bash中printf和echo之间的区别

Kit*_* Ho 1 linux bash

$ printf 'apple' | wc -m
       5
$ echo 'apple' | wc -m
       6
Run Code Online (Sandbox Code Playgroud)

为什么printf打印5和echo打印6个字符?

che*_*ner 5

项第一句echobash手册页(重点煤矿):

输出args,用空格分隔,后跟换行符.

手册页条目的第一句printf:

在格式的控制下将格式化的参数写入标准输出.

printf仅打印格式中显示的内容; 它不会附加隐含的换行符.

有可能是之间的其他差异echo "foo"printf "foo",这取决于究竟foo是.POSIX规范为实现提供了广泛的自由裁量权echo,可能是为了避免从不同的历史实现中选择标准.使用printf时,依靠精确的输出.