我使用shell脚本创建一个简单的基于控制台的脚本。它将运行在我的bash shell上 其基于驱动的简单菜单显示一些选项集。文本对齐中心 - shell脚本
现在我想根据屏幕大小来对齐文本。 如何对齐文本在屏幕的中央,请阿西斯我
我使用shell脚本创建一个简单的基于控制台的脚本。它将运行在我的bash shell上 其基于驱动的简单菜单显示一些选项集。文本对齐中心 - shell脚本
现在我想根据屏幕大小来对齐文本。 如何对齐文本在屏幕的中央,请阿西斯我
最后我找到了解决办法:)
COLUMNS=$(tput cols)
title="Hello world!"
printf "%*s\n" $(((${#title}+$COLUMNS)/2)) "$title"
简单的Perl的解决方案:
perl -pe '$sp = " " x (($ENV{COLUMNS} - length)/2); s/^/$sp/'
它可以在shell脚本上工作吗? –
试试看。只需将该行添加到脚本中,将文本以管道形式居中('generate-text | perl ...')或将其用作参数('perl ... text.txt') – choroba
最后,我找到了解决方案: COLUMNS = $(输入cols) title =“Hello world!” printf“%* s \ n”$((($ {#title} + $ COLUMNS)/ 2))“$ title” –
在基于BSD的系统,包括MacOS,fmt
实用程序有一个-c
标志来居中文本。
echo $text | fmt -c -w $COLUMNS
不幸的是,GNU fmt
有一个不兼容的-c标志和无可奈何的中心。
如果您需要一行代码,它从命令行参数获取输入: '''printf“%* s \ n”$((($(echo $ * | wc -c)+ 80)/ 2 ))“$ *”''' 接受来自命令行参数的输入,使用wc来计算字符数,默认值为80个字符。 – thewisenerd