Linux命令学习手册-printf

printf FORMAT [ARGUMENT]... printf OPTION

功能 格式化并打印数据.
举例 打印整数和字符串
$printf 'the integer is:%d\nthe string is: %s\n' 3 "test"

输入之后,输出如下:
the integer is:3 the string is: test

这里,使用单引号双引号都行;注意最后要有回车,否则下一个提示行和输出跑到一行了。
不用引号打印一个参数的情况
$printf %s test

输入之后,输出如下:
testquietheart@ubuntu$

从这里可以看出来, test 是待打印的字符, quietheart@ubuntu$ 是我的机器命令提示符号,两者在一行。
不用引号打印多个参数的情况
$printf %s first second

输入之后,输出如下:
firstsecondquietheart@ubuntu$

格式只指定了一个,但是多余一个参数
$printf "%s\n" first second

输入之后,输出如下:
first second

注意这里的回车,字符串仍旧可以输出。
指定的格式少于参数
$printf "%s %s %s %s\n" a b c d e f g h i j k l m n

输入之后,输出如下:
ab c d efg h ijk l m n

这里,该情况是前面指定一个格式的情况扩展。
类似 echo -n 的输出,不自动换行
$my_var="abc123" $printf $my_var

输入之后输出如下:
abc123quietheart@ubuntu$

【Linux命令学习手册-printf】如果 echo 输出会自动换行,这里没有自动换行,这和 echo -n 的效果相同。
类似echo的输出,自动换行
$printf "$my_var \n"

输入之后,输出如下:
abc123

或者
$printf '$my_var \n'

输入之后,输出如下:
$my_var

这里,这两个命令类似于 echo ,需要注意的是不能如下这样:
$printf "%s \n" $var

因为,变量不可以如此输出,因为 printf 命令的 ARGUMENT 认字符串。
如果参数没写上,那么就用 NULL 或者 0 来代替
$printf "%s and %d \n"

输入之后,输出如下:
and 0

描述 这个函数类似C语言里的 printf ,先指定格式,再写上变量。不同点,SHELL命令的 printf
  1. 没有C语言函数里必须的括号;
  2. 一般情况下,指定 FORMAT 时候,使用单引号和双引号均可;
  3. 某些情况下,不加引号也可以,但是无法处理负责格式;
  4. 某些情况下, FORMAT 可以重用,可以将所有参数都转换;
  5. 输出变量参数之间使用空格或 tab 分割,不用逗号;
  6. 某种程度上可以替代 echo.
其它 参考资料:http://sns.linuxpk.com/space-566-do-blog-id-15819.html

    推荐阅读