printf
概要
主要用途
- 格式化参数并输出。
选项
参数
format:输出格式。
arguments:一到多个参数。
返回值
返回状态为成功除非给出了非法选项、写错误、赋值错误。
例子
# %-5s 格式为左对齐且宽度为5的字符串代替('-'表示左对齐),不使用则默认右对齐。
# %-4.2f 格式为左对齐宽度为4,保留两位小数。
printf "%-5s %-10s %-4s\n" NO Name Mark
printf "%-5s %-10s %-4.2f\n" 01 Tom 90.3456
printf "%-5s %-10s %-4.2f\n" 02 Jack 89.2345
# 输出
NO Name Mark
01 Tom 90.35
02 Jack 89.23
03 Jeff 98.43
# %b %q %(fmt)T 的例子。
# see it again with a newline.
printf "%s\n" 'hello world'
# 展开换行符,和上面的结果一样。
printf "%b" 'hello world\n'
# 输出
a\ b\ c
# %z为时区,%n为换行符。
printf "%(%F %T %z%n)T"
# 输出
2019-09-10 01:48:07 +0000
注意
- 该命令是bash内建命令,相关的帮助信息请查看
help
命令。
概要
主要用途
- 格式化参数并输出。
选项
--help 显示帮助信息并退出。
--version 显示版本信息并退出。
参数
arguments:一到多个参数。
例子
# 使用 /usr/bin/printf 确保调用的不是内建命令。
# 按行打印数组和关联数组的下标及值。
# 声明数组可以不加'declare -a'或'local -a'(在函数内声明的局部变量)。
arr=('line1' 'line2')
/usr/bin/printf "%s\n" ${!arr[@]}
# 输出下标
0
1
# 输出值
line1
line2
#声明关联数组(也就是字典)必须加'declare -A'或'local -A'(在函数内声明的局部变量)。
declare -A assoc_arr=(['key1']='value1' ['key2']='value2')
/usr/bin/printf "%s\n" ${!assoc_arr[@]}
# 输出键。
key2
key1
/usr/bin/printf "%s\n" ${assoc_arr[@]}
# 输出值。
value2
value1
返回值
返回状态为成功除非给出了非法选项等。
注意
该命令是
GNU coreutils
包中的命令,相关的帮助信息请查看man -s 1 printf
或info coreutils 'pwd invocation'
。我通过和
bug-bash@gnu.org
的交流,得到了关于这几个格式说明符%b %q %(fmt)T
的解释:-
的
Description
段落。
-
的