9

シェルスクリプトを使用して単純なコンソールベースのスクリプトを作成しています。これは私のbashシェルで実行されます。単純なメニューベースの駆動型ディスプレイで、いくつかのオプションセットが表示されます。

今、画面サイズに応じてテキストを中央揃えにしたいと考えています。テキストを画面の中央に揃えるにはどうすればよいですか?助けてください

4

4 に答える 4

23

最後に私は解決策を見つけました:)

COLUMNS=$(tput cols) 
title="Hello world!" 
printf "%*s\n" $(((${#title}+$COLUMNS)/2)) "$title"
于 2012-09-18T12:31:43.337 に答える
9

MacOS を含む BSD ベースのシステムでは、fmtユーティリティには-cテキストを中央に配置するフラグがあります。

echo $text | fmt -c -w $COLUMNS

残念ながら、GNUfmtには互換性のない -c フラグがあり、センタリングの代替手段はありません。

于 2013-06-04T15:08:23.850 に答える
0

シンプルな Perl ソリューション:

perl -pe '$sp = " " x (($ENV{COLUMNS} - length) / 2); s/^/$sp/'
于 2012-09-18T07:09:37.723 に答える