Bash
如何列印具有填充中心對齊的變數?
如何列印
$myvar
填充,使其位於終端的中心,並且任一側都=
位於螢幕的邊緣?
我在 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"