shell中的print和printf的区别

如题所述

因为不知道你使用的是bash还是tcsh,还是其他种类的shell。假设是bash, 下面举例子讲解,有可能你的机器上的同样的命令输出与我的不同,供参考。

1)运行下面2条which命令:
$ which print
/usr/bin/print

$ which printf

/usr/bin/printf

说明当前机器上安装了外部命令print和printf

2)看一下这2个命令的具体的位置:
$ ls -l /usr/bin/print /usr/bin/printf
lrwxrwxrwx 1 root root 11 Nov 15 2010 /usr/bin/print -> run-mailcap
-rwxr-xr-x 1 root root 51744 Apr 1 2012 /usr/bin/printf

说明print是符号链接,看看它指向的可执行文件:

$ ls -l /usr/bin/run-mailcap
-rwxr-xr-x 1 root root 17012 Nov 15 2010 /usr/bin/run-mailcap

3)运行print --help或者man print可以查看它的帮助
运行man printf可以查看帮助,或者运行/usr/bin/printf --help查看帮助

为什么运行printf --help不能查看帮助呢?

4)在bash环境下面,运行help可以看见所有的内置命令,可以看见内置命令包括printf,命令同名时,内置命令的优先级高于外部命令,并且内置命令用help printf来查看帮助。
综上所述,查看内置printf命令的帮助用help printf,查看外部printf命令的帮助要带上全路径,运行/usr/bin/printf --help查看帮助(不带全路径会被认为是内置printf命令)。

5)我个人经验,普通的打印用echo命令,格式化打印用printf命令(内置的,外部的都可以)。

谢谢!
温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答