文本对齐中心 - shell脚本

时间:2012-09-18 07:04:45

标签: shell ubuntu

我正在使用shell脚本创建一个简单的基于控制台的脚本。它将在我的bash shell上运行 它是一个简单的菜单驱动显示一些选项。

现在我想根据屏幕尺寸对文本进行居中对齐。 如何在屏幕中央对齐文本?请帮助我

3 个答案:

答案 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/'