鉴于文字$txt
,我怎么能在Bash中将其证明为给定的宽度。
示例(width = 10):
如果$txt=hello
,我想打印:
hello |
如果$txt=1234567890
,我想打印:
1234567890|
答案 0 :(得分:43)
您可以使用printf
命令,如下所示:
printf "%-10s |\n" "$txt"
%s
表示将参数解释为字符串,而-10
表示左对齐宽度为10(负数表示左对齐,而正数表示向右对齐)。打印换行符需要\n
,因为printf
不会隐式添加新换行符。
注意 man printf
简要描述了此命令,但完整格式文档可以在man 3 printf
的C函数手册页中找到。
答案 1 :(得分:3)
您可以使用- flag
进行左对齐。
[jaypal:~] printf "%10s\n" $txt
hello
[jaypal:~] printf "%-10s\n" $txt
hello
答案 2 :(得分:1)
bash
包含printf
内置
txt=1234567890
printf "%-10s\n" "$txt"