$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"