`

shell printf命令:格式化输出语句

阅读更多
printf 命令用于格式化输出, 是echo命令的增强版。它是C语言printf()库函数的一个有限的变形,并且在语法上有些不同。

注意:printf 由 POSIX 标准所定义,移植性要比 echo 好。

如同 echo 命令,printf 命令也可以输出简单的字符串:
$printf "Hello, Shell\n"
Hello, Shell
$

printf 不像 echo 那样会自动换行,必须显式添加换行符(\n)。

printf 命令的语法:
printf  format-string  [arguments...]
format-string 为格式控制字符串,arguments 为参数列表。

printf()在C语言入门教程中已经讲到,功能和用法与 printf 命令类似,请查看:C语言格式输出函数printf()详解

这里仅说明与C语言printf()函数的不同:
printf 命令不用加括号
format-string 可以没有引号,但最好加上,单引号双引号均可。
参数多于格式控制符(%)时,format-string 可以重用,可以将所有参数都转换。
arguments 使用空格分隔,不用逗号。

请看下面的例子:
# format-string为双引号
$ printf "%d %s\n" 1 "abc"
1 abc
# 单引号与双引号效果一样 
$ printf '%d %s\n' 1 "abc" 
1 abc
# 没有引号也可以输出
$ printf %s abcdef
abcdef
# 格式只指定了一个参数,但多出的参数仍然会按照该格式输出,format-string 被重用
$ printf %s abc def
abcdef
$ printf "%s\n" abc def
abc
def
$ printf "%s %s %s\n" a b c d e f g h i j
a b c
d e f
g h i
j如果没有 arguments,那么 %s 用NULL代替,%d 用 0 代替
$ printf "%s and %d \n" 
and 0
# 如果以 %d 的格式来显示字符串,那么会有警告,提示无效的数字,此时默认置为 0
$ printf "The first program always prints'%s,%d\n'" Hello Shell
-bash: printf: Shell: invalid number
The first program always prints 'Hello,0'
$

注意,根据POSIX标准,浮点格式%e、%E、%f、%g与%G是“不需要被支持”。这是因为awk支持浮点预算,且有它自己的printf语句。这样Shell程序中需要将浮点数值进行格式化的打印时,可使用小型的awk程序实现。然而,内建于bash、ksh93和zsh中的printf命令都支持浮点格式。
分享到:
评论

相关推荐

    shell学习之printf命令格式化输出语句

    printf 命令用于格式化输出, 是echo命令的增强版。它是C语言printf()库函数的一个有限的变形,并且在语法上有些不同。 注意:printf 由 POSIX 标准所定义,移植性要比 echo 好。 如同 echo 命令,printf 命令也可以...

    Shell开发教程.docx

    Shellprintf命令:格式化输出语句 **printf命令**: - `printf "%s\n" "Hello, World!"` 格式化输出。 #### 15. Shellifelse语句 **条件判断**: - `if [ condition ]; then ... else ... fi` 进行条件判断。 #...

    shell脚本语言.pdf

    * Shell printf 命令是指在 Shell 中格式化输出字符串的命令 * Shell printf 命令可以使用格式字符串来实现格式化输出 Shell if else 语句: * Shell if else 语句是指在 Shell 中的条件语句 * Shell if else ...

    计算机软件基础:06第一章UNIX-Cshell.doc

    * printf:用于格式化输出文本信息。 * read:用于读取用户输入信息。 * exit:用于退出shell。 三、运算语句 C shell支持多种运算语句,包括: * 赋值语句:用于将值赋给变量。 * 算术语句:用于进行算术运算。 ...

    Linux Shell 脚本基础

    - `printf`命令:格式化输出,比`echo`更强大,可以处理复杂的格式化字符串。 - `echo`命令:简单地打印字符串或变量到标准输出。 - `args.sh`可能涉及参数处理,脚本通常通过`$1`、`$2`等访问传递的命令行参数,`$#...

    shell基础命令

    - `>`:将命令输出重定向到文件。 - `<`:从文件读取输入。 - `|`:管道符,将一个命令的输出作为另一个命令的输入。 5. **控制结构**: - `if...then...else...fi`:条件语句。 - `for`:循环语句,常用于...

    3,Shell编程基础

    echo 命令可以用来输出变量的值或字符串,而 printf 命令可以用来输出格式化的字符串。 test 命令是 Shell 编程中的一种基本命令。test 命令可以用来判断条件是否成立,例如:if test -f file.txt。 流程控制是 ...

    shell 脚本编程 - v1.11

    - **第4章 - Shell学习第四天**:介绍更高级的输出方法,如使用printf命令进行格式化输出。 - **第5章 - Shell学习第五天**:讲解输入/输出重定向的高级用法,包括文件描述符、重定向到多个文件等。 在后续章节中,...

    linux shell 简明教程.pdf

    ### Linux Shell 简明教程知识点汇总 #### 一、Linux操作系统与Shell脚本...此外,还学习了如何使用`declare`和`printf`等内置命令进行更复杂的变量操作和格式化输出。这些基础知识对于编写高效的Shell脚本至关重要。

    linux shell脚本知识汇总

    - **printf**:更灵活的输出命令,支持格式化输出,类似于C语言的`printf`函数。 - **HERE DOCUMENT** (`):用于输出多行内容,常用于配置文件的生成。 - **交互式命令**:通过`read`命令,可以从用户那里接收...

    shell脚本学习与总结

    Shell脚本学习与总结 shell脚本学习是 Linux 操作系统中非常重要的一部分,它可以帮助用户自动化重复性任务,提高工作效率。在这篇文章中,我们将对 shell ...3. printf 命令:printf 命令用于输出格式化的字符串。

    shell编程和unix命令

    18.3.14 null:命令用法 167 18.3.15 测试目录创建结果 168 18.3.16 另一个拷贝实例 169 18.3.17 多个if语句 169 18.3.18 测试和设置环境变量 169 18.3.19 检测最后命令状态 170 18.3.20 增加和检测整数值 171 18.3....

    Shell编程:Linux系统环境程序设计之路

    `printf`类似于C语言中的`printf`函数,提供了一种格式化输出的方式,支持更复杂的输出格式控制。 `set`命令有多种用途,其中包括设置或取消shell选项。在示例中,`set -a`会使得之后声明的所有变量自动成为环境...

    linux Shell 编程实例书一本

    8. **文本处理工具**:熟悉grep、sed、awk等强大的文本处理命令,用于搜索、替换、格式化文本。 9. **脚本调试**:学习如何使用set -x、set -v进行脚本的调试,以及使用echo、printf命令进行输出调试信息。 10. **...

    shell读书笔记

    3. 文本处理:`cat`显示文件内容,`more`或`less`分页查看文件,`echo`输出字符串,`printf`格式化输出。 4. 进程管理:`ps`查看当前进程,`kill`发送信号结束进程,`nohup`让命令在后台持续运行。 5. 环境设置:`...

    bash shell高级编程

    15. **shell内置命令**:如`read`用于从标准输入读取一行,`echo`打印字符串,`printf`格式化输出,`source`或`.`用于在当前shell环境中执行文件内容。 16. **历史记录**:`history`命令列出历史命令,`!n`或`!-n`...

    shell24学时教程

    4. **控制台输出**:掌握echo和printf命令,用于在终端打印文本和格式化输出。 **第二部分:Shell语法与结构** 1. **注释**:了解如何使用#进行单行注释,多行注释的方法。 2. **条件语句**:学习if、elif、else...

    shell编程大全

    - 字符转换和压缩的实际应用:通过实例了解tr在文本格式化、编码转换等方面的应用。 这些工具在日常系统管理和自动化任务中发挥着关键作用。通过深入学习和实践,你可以编写出强大的shell脚本来处理各种复杂的数据...

Global site tag (gtag.js) - Google Analytics