我正在使用shell脚本创build一个简单的基于控制台的脚本。它将在我的bash shell上运行它基于简单的菜单驱动显示一些选项集。
现在我想根据屏幕大小来alignment文本。 如何alignment屏幕中心的文字?请帮助我
最后我找到了解决办法:)
COLUMNS=$(tput cols) title="Hello world!" printf "%*s\n" $(((${#title}+$COLUMNS)/2)) "$title"
在基于BSD的系统(包括MacOS)上, fmt
实用程序具有用于居中文本的-c
标志。
echo $text | fmt -c -w $COLUMNS
不幸的是,GNU fmt
有一个不兼容的-c标志,没有其他选择。
简单的Perl解决方案
perl -pe '$sp = " " x (($ENV{COLUMNS} - length) / 2); s/^/$sp/'