Shell printf命令

来源:互联网 发布:淘宝详情页可以修改吗 编辑:程序博客网 时间:2024/04/26 00:50

#Shell printf命令

#printf命令模仿C 程序库里的printf()程序

#因此使用printf的脚本比使用echo移植性好

# printf使用引用文本或空格分隔的参数,外面可以在printf中使用格式化字符串,还可以指定字符串宽度、左右对齐方式等。默认printf不会像echo自动添加换行符,我们可以手动添加\n

# printf 命令的语法: printf format-string[arguments...]

# 1format-string:为格式控制字符串; 2arguments:参数列表

echo  "Hello ,Shell"

printf "Hello,Shell\n"

printf "%-10s %-8s %-4s\n" 姓名 性别 体重KG

printf "%-10s %-8s %-4.2f\n" 郭靖   66.333456776

printf "%-10s %-8s %-4.2f\n" 杨过   77.44556

printf "%-10s %-8s %-4.2f\n" 郭芙   49.445656

# %s %c %d %f 都是格式替代符,%-10s指一个宽度为10个字符(-表示左对齐,没有则表示右对齐),任何字符都会被显示在10个字符宽的字符内,如果不足,则自动以空格填充,超过也会将内容全部显示出来

# %-4.2f指格式化为小数,其中.2指保留2位小数。

#更多实例

printf "更多实例\n"

#1forma-string为双引号

printf "%d %s\n" 1 "abc"

# 单引号与双引号效果一样

printf '%d %s\n' 1 "abc"

#2、没有引号也可以输出

printf %s abcdef 

#3、格式只指定了一个参数,但多出的参数仍然会按照改格式输出,format-string被重用

printf %s adc def

printf "n%s\n" abc def

# 4、如果没有arguments,那么%sNULL(空串-"")代替,%d0代替

printf "%s and %d\n"


#printf的转义序列

# \a   -- 警告字符,通常为ASCIIBEL字符

# \b   -- 后退

# \c   -- 抑制(不显示)输出结果中任何结尾的换行字符(只有在%b格式指示符控制下的参数字符中才有效),而且,任何留在参数里的字符、任何接下来的参数以及任何留在格式字符串中的字符,都被忽略

# \f   -- 换页

# \n   -- 换行

# \r   -- 回车

# \t   -- 水平制表符

# \v   -- 垂直制表符

# \\   -- 一个字面上的反斜杠字符

# \ddd -- 表示13位数八进制值的字符,仅在格式字符中有效

# \0ddd -- 表示13位的八进制值字符

printf "printf的转义序列\n"

printf "www.baidu.com \a"

printf "www.baidu.com\b \n"


# %d  %s  %c  %f 格式替代符详解:

# d: 十进制整数 --对应位置参数必须是十进制整数,否则会报错

# s: String字符串 --对应位置参数必须是字符串或者字符型,否则会报错

# c: Char字符  --队形位置必须是字符串(仅输出第一个字符)或者字符型,否则会报错

# f: Float浮点 --对应位置参数必须是数字型,否则会报错




原创粉丝点击