パディング中心のソートを使用して変数を印刷するには?

パディング中心のソートを使用して変数を印刷するには?

$myvarパディングを端末の中央に、両側が画面の=端にくるように印刷するにはどうすればよいですか?

ベストアンサー1

私はこの可能な答えを見つけるのに役立つ2つの情報をstackexchangeネットワークで見つけました。

しかし、この答えのコードは私のコードです。

詳細については、編集履歴をご覧ください。ナンセンスと「ステップバイステップ」の両方を削除しました。


最良の方法は次のとおりです。

center() {
  termwidth="$(tput cols)"
  padding="$(printf '%0.1s' ={1..500})"
  printf '%*.*s %s %*.*s\n' 0 "$(((termwidth-2-${#1})/2))" "$padding" "$1" 0 "$(((termwidth-1-${#1})/2))" "$padding"
}
center "Something I want to print"

端子80列出力:

========================== Something I want to print ===========================

パディングは単一文字である必要はなく、単一文字でもかまいません。実際、padding変数はそうではありません。上記のコードでは、長さは500文字です。行のみを変更して他の種類のパディングを使用できますpadding

padding="$(printf '%0.2s' ^v{1..500})"

結果:

^v^v^v^v^v^v^v^v^v^v^v^v^v Something I want to print ^v^v^v^v^v^v^v^v^v^v^v^v^v^

別の便利な用途は次のとおりです。

clear && center "This is my header"

おすすめ記事