Wil*_*ard 8 bash tput printf text-formatting
如何打印$myvar填充以使其位于终端的中心,并且任一侧都=位于屏幕的边缘?
Wil*_*ard 13
我在 stackexchange 网络上找到了两条信息,这些信息帮助我得出了这个有效的答案:
然而,这个答案中的代码是我自己的。
如果您想要更详细的内容,请查看编辑历史记录;我已经删除了所有的琐碎和“沿途的步骤”。
我认为最好的方法是:
center() {
termwidth="$(tput cols)"
padding="$(printf '%0.1s' ={1..500})"
printf '%*.*s %s %*.*s\n' 0 "$(((termwidth-2-${#1})/2))" "$padding" "$1" 0 "$(((termwidth-1-${#1})/2))" "$padding"
}
center "Something I want to print"
Run Code Online (Sandbox Code Playgroud)
在 80 列宽的终端上输出:
========================== Something I want to print ===========================
Run Code Online (Sandbox Code Playgroud)
请注意,填充不必是单个字符;实际上padding变量不是,它在上面的代码中有 500 个字符长。您可以通过仅更改padding行来使用其他形式的填充:
padding="$(printf '%0.2s' ^v{1..500})"
Run Code Online (Sandbox Code Playgroud)
结果是:
^v^v^v^v^v^v^v^v^v^v^v^v^v Something I want to print ^v^v^v^v^v^v^v^v^v^v^v^v^v^
Run Code Online (Sandbox Code Playgroud)
另一个方便的用法是:
clear && center "This is my header"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8912 次 |
| 最近记录: |