我正在使用shell脚本创建一个简单的基于控制台的脚本。它将在我的bash shell上运行 它是一个简单的菜单驱动显示一些选项。
现在我想根据屏幕尺寸对文本进行居中对齐。 如何在屏幕中央对齐文本?请帮助我
答案 0 :(得分:15)
最后我找到了解决方案:)
COLUMNS=$(tput cols)
title="Hello world!"
printf "%*s\n" $(((${#title}+$COLUMNS)/2)) "$title"
答案 1 :(得分:6)
在基于BSD的系统(包括MacOS)上,fmt
实用程序有一个-c
标记,用于居中文本。
echo $text | fmt -c -w $COLUMNS
不幸的是,GNU fmt
有一个不兼容的-c标志,没有替代中心。
答案 2 :(得分:0)
Simple Perl解决方案:
perl -pe '$sp = " " x (($ENV{COLUMNS} - length) / 2); s/^/$sp/'