07printf

shell printf命令

  printf  format-string              [arguments...]

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

printf "%-10s %-8s %-4s " 姓名 性别 体重kg
printf "%-10s %-8s %-4.2f " 郭靖 男 66.1234
printf "%-10s %-8s %-4.2f " 杨过 男 48.6543
printf "%-10s %-8s %-4.2f " 郭芙 女 47.9876

# format-string为双引号
printf "%d %s " 1 "abc"

# 单引号与双引号效果一样
printf '%d %s ' 1 "abc"

# 没有引号也可以输出
printf %s abcdef

# 格式只指定了一个参数,但多出的参数仍然会按照该格式输出,format-string 被重用
printf %s abc def

printf "%s " abc def

printf "%s %s %s " a b c d e f g h i j

# 如果没有 arguments,那么 %s 用NULL代替,%d 用 0 代替
printf "%s and %d "

转义序列

printf "a string, no processing:<%s> " "A B"

printf "a string, no processing:<%b> " "A B"

printf "www.runoob.com a"

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

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

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

c: Char 字符 -- 对应位置参数必须是字符串或者字符型,否则报错!

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

如:其中最后一个参数是 "def",%c 自动截取字符串的第一个字符作为结果输出。

printf "%d %s %c
" 1 "abc" "def"
1 abc d
 
原文地址:https://www.cnblogs.com/DowneyJr/p/7658091.html