- 浏览: 460818 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (538)
- C/C++ Primer (69)
- Objective-C Primer (102)
- Python Primer (19)
- JavaScript Primer (1)
- Java Primer (37)
- PHP Primer (17)
- 泛 Linux (37)
- Shell Script (21)
- APUE (21)
- UNP__1&2 (19)
- NetWork (7)
- Oracle周边 (38)
- Mysql里边 (6)
- Windows技 (9)
- 简单算法 & 数据结构 (14)
- 设计模式 (6)
- GTK历程 (12)
- 工具使用 (25)
- 杂事 (23)
- 一些概念 (17)
- Web方面 (10)
- myCodeTools (9)
- ^未 竟$ (13)
- 硬件通信 (2)
- Games (1)
最新评论
原文:http://hi.baidu.com/wangyuquansky/blog/item/319ce0903b98638aa877a425.html
printf命令, 格式化输出, 是echo命令的增强版. 它是C语言printf()
库函数的一个有限的变形, 并且在语法上有些不同.
printf format-string... parameter...
这是Bash的内建版本, 与/bin/printf或者/usr/bin/printf命令不同. 如果想更深入的了解, 请察看printf(系统命令)的man页.
老版本的Bash可能不支持printf. |
例子 11-2. 使用printf的例子
1 #!/bin/bash 2 # printf 示例 3 4 PI=3.14159265358979 5 DecimalConstant=31373 6 Message1="Greetings," 7 Message2="Earthling." 8 9 echo 10 11 printf "Pi to 2 decimal places = %1.2f" $PI 12 echo 13 printf "Pi to 9 decimal places = %1.9f" $PI # 都能够正确的结束. 14 15 printf "\n" # 打印一个换行, 16 # 等价于 'echo' . . . 17 18 printf "Constant = \t%d\n" $DecimalConstant # 插入一个 tab (\t). 19 20 printf "%s %s \n" $Message1 $Message2 21 22 echo 23 24 # ==========================================# 25 # 模拟C函数, sprintf(). 26 # 使用一个格式化的字符串来加载一个变量. 27 28 echo 29 30 Pi12=$(printf "%1.12f" $PI) 31 echo "Pi to 12 decimal places = $Pi12" 32 33 Msg=`printf "%s %s \n" $Message1 $Message2` 34 echo $Msg; echo $Msg 35 36 # 像我们所看到的一样, 现在'sprintf'可以 37 #+ 作为一个可被加载的模块, 38 #+ 但是不具可移植性. 39 40 exit 0 |
使用printf的最主要的应用就是格式化错误消息.
1 E_BADDIR=65 2 3 var=nonexistent_directory 4 5 error() 6 { 7 printf "$@" >&2 8 # 格式化传递进来的位置参数, 并把它们送到stderr. 9 echo 10 exit $E_BADDIR 11 } 12 13 cd $var || error $"Can't cd to %s." "$var" 14 15 # 感谢, S.C. |
发表评论
-
SSH
2013-02-28 14:29 1118高效使用 SSH 的 16 个技巧:http://blog. ... -
Shell__参数传递
2011-02-11 14:29 730#!/bin/bash echo '$# '参数个数 ... -
Shell__字符串截取
2010-10-18 10:59 1251http://blog.csdn.net/gumanren/a ... -
Shell__Script
2010-10-15 14:05 622获取目录 dirname 全路径 获取文件名 basen ... -
Shell__循环
2010-08-09 14:41 806num=1 while [ $num -le 3 ] ... -
Shell__时间戳
2010-08-09 11:35 755http://blog.chinaunix.net/u3/91 ... -
paste__多文件列合并
2010-08-05 11:35 789Linux的文本处理强啊 paste file1 ... -
Shell 解析
2010-07-27 14:39 549shell.sh sh -c "grep 'xx' ... -
Shell__比较运算符
2010-07-27 09:44 866http://blog.chinaunix.net/u/981 ... -
Shell__Date
2010-07-26 16:48 898# 遍历出本月1号~X号的日期 #!/bin/bash ... -
Shell 偶用查询
2010-07-06 15:15 683文件行数 wc -l FileName 统计当前目录下文 ... -
cut 行数据操作
2010-05-27 09:44 723http://blog.sina.com.cn/s/blog_ ... -
test命令
2010-05-19 10:55 864似乎是来至鸟哥的学习 Shell Scripts……,原地址 ... -
alias
2010-05-18 18:13 812原文:http://tieba.baidu.com/f?kz= ... -
Shell脚本入门之一
2010-05-14 17:02 1184晕…… 鸟哥写的那篇实在太好了不打算copy之二了。 ... -
split 文件分割与合并
2010-05-14 00:03 1179split分为两种,二进制文件模式切割和文本文件模式切割。 ... -
什么时候不使用Shell 脚本
2010-05-13 22:29 1035资源密集型的任务,尤其在需要考虑效率时(比如,排序,hash ... -
AWK简单使用
2010-05-11 17:51 1703AWK有如文本数据库的功能! awk -F ‘分 ... -
文件比较comm 与 diff
2010-05-10 10:34 754http://www.blogjava.net/w ... -
uniq 去重复行
2010-05-10 10:21 640http://www.ibm.com/developerwor ...
相关推荐
下面是一个简单的 printf 函数的示例: ```c int __cdecl printf ( const char *format, ... ) { va_list ap; int buffing; int retval; va_start(ap, format); _ASSERTE(format != NULL); _lock_str2(1, ...
Printf函数的分析与实现过程(简单实例).讲述了printf函数的实现原理,及printf 函数的简单实例
在printf的格式字符串中指定转换参数和域宽的方法
本文将详细介绍如何在STC单片机上使用printf函数将数据输出到1602液晶显示屏。 首先,我们要理解STC单片机与1602 LCD的交互原理。1602 LCD通常采用4线或8线接口与单片机连接,其中4线接口主要用于控制信号(RS、RW...
在压缩包中的“UART串口2Printf简单打印(STM32神舟IV号-库函数版)”程序中,应该包含了这些配置的示例代码和详细说明。这份资料将帮助你理解如何实现这个功能,包括如何设置和使用`HAL_UART_Transmit()`函数发送数据...
本文将详细介绍如何使用STM32CubeMX配置串口以及如何实现printf重定向。 首先,STM32CubeMX是ST公司提供的一款图形化配置工具,用于快速配置STM32微控制器的外设。在本项目中,我们需要通过以下步骤来配置串口: 1...
下面是一个简单的STM32`printf`模板程序的框架: ```c #include "stdio.h" #include "stm32f4xx_hal.h" extern UART_HandleTypeDef huart1; // 假设使用UART1 void serial_putchar(char c, FILE *stream) { if...
针对嵌入式开发中打印信息而实现的printf,可以向串口输出信息
针对英飞凌4300单片机,我们不能简单地修改链接器脚本或配置文件来实现stdio的重定向,而是需要自己编写一个串口输出函数,如putchar,然后在printf内部替换原有的标准输出函数。这样,printf函数在处理格式化字符串...
对于`%s`,`do_printf_string`函数会简单地复制字符串到输出缓冲区。浮点数转换则可能涉及`do_printf_float`等函数,这些函数会根据`%f`、`%e`或`%g`的不同格式进行适当的转换。 `vsprintf`函数还涉及到对齐、填充...
由于C51标准库不包含`printf`,我们需要自定义一个函数,例如`my_printf`,并使用`putchar`函数将字符发送到串口。`putchar`是一个简单的函数,负责将单个字符发送到UART。 ```c void my_putchar(char c) { ...
最简单的使用方法是输出一段纯文本,例如输出"Hello World!": ```c #include int main() { printf("Hello World!\n"); // \n表示换行 return 0; } ``` **2. 输出带格式的文本** 当需要输出变量值时,可以使用...
为了在MFC项目中使用`printf`函数输出信息到控制台,我们需要完成以下步骤: 1. **添加必要的头文件**: - `#include <io.h>`:提供了`_open_osfhandle`等用于文件句柄操作的函数。 - `#include <fcntl.h>`:包含...
实现一个简单的 `myprintf`,你需要关注以下几个核心步骤: 1. **解析格式化字符串**:遍历字符串,识别出 `%` 开始的格式化指示符,并根据其后的字符确定输出类型和参数。 2. **处理变量参数列表**:C 语言中,...
《使用 MSP430 单片机实现 printf 函数》 在嵌入式系统开发中,尤其是在使用单片机如 MSP430 进行低功耗应用时,调试是必不可少的一个环节。传统的调试手段如 LED 灯、蜂鸣器等在复杂问题的排查上显得力不从心。...
2. **缓冲区管理**:由于嵌入式系统资源有限,可能没有标准库中的缓冲区管理,UART_printf可能需要自定义一个简单的缓冲区,用于临时存储待发送的数据。 3. **格式化字符串处理**:UART_printf的核心功能是对输入的...
6. **测试与验证**:编写简单的测试程序,通过调用printf输出不同类型的变量和字符串,确保打印功能正常工作。 这个实例教程可能会包含以上步骤的详细指导,以及如何在8258和8278平台上进行操作的具体说明。通过这...
以下是一个简单的宏封装printf的例子: ```cpp #define COLOR_RED "\033[31m" #define COLOR_RESET "\033[0m" #define PRINT_COLORRED(text) printf(COLOR_RED "%s" COLOR_RESET, text) int main() { PRINT_...