2017-11-11 412 views
1

對齊ASCII藝術,我只是工作在我的bash項目和中心對齊/ bash中

我想報頭ASCII藝術在每當終端在任何決議執行腳本中心自動調整。這可能是配偶嗎? 以下是我的代碼:

#!/bin/bash 
clear 
echo 
echo -e "\t\t1▄██████▄#0000▄████████0000▄████████11▄██████▄ "; 
echo -e "\t\t███0000███111███0110███111███1011███1███#0000██"; 
echo -e "\t\t███0001███111███0111███111███1100█▀11███#ffff██"; 
echo -e "\t\t███0010███11▄███▄▄▄▄██▀11▄███▄▄▄11111███#0000██"; 
echo -e "\t\t███0011███1▀▀███▀▀▀▀▀111▀▀███▀▀▀11111███#ffff██"; 
echo -e "\t\t███0100███1▀███████████111███1101█▄11███#0000██"; 
echo -e "\t\t███0101███111███1000███111███1110███1███#ffff██"; 
echo -e "\t\t1▀██████▀ffff███1001███111██████████11▀██████▀1"; 
echo -e "\n\n" 
+0

如果您有不同寬度的線條,您可以使用一個變化,例如, 'printf「%$((($ {COLUMNS} - $ {#string})/ 2))s \ n」「$ string」'(對於相同的寬度,choroba顯示的固定縮進是通向的方式) –

+0

David又一次。 你是真正的親人, –

+0

當你完成這個項目時,你將成爲ANSI/ASCII藝術專家':)' –

回答

2

您可以使用它返回終端的寬度列的環境變量。

banner_width=46 
indent=$(((COLUMNS - banner_width)/2)) 
prefix='' 
for ((i=1; i<=indent; i++)) ; do 
    prefix+=' ' 
done 
echo 
echo -e "${prefix}1▄██████▄#0000▄████████0000▄████████11▄██████▄ "; 
+1

如果它不是交互式shell,我建議在開頭插入以下內容,因爲否則變量COLUMNS沒有設置:'COLUMNS = $(tput cols)'或'eval $(調整大小)' – Cyrus