中心对齐/ bash中
问题描述:
对齐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"
答
您可以使用它返回终端的宽度列的环境变量。
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
如果您有不同宽度的线条,您可以使用一个变化,例如, 'printf“%$((($ {COLUMNS} - $ {#string})/ 2))s \ n”“$ string”'(对于相同的宽度,choroba显示的固定缩进是通向的方式) –
David又一次。 你是真正的亲人, –
当你完成这个项目时,你将成为ANSI/ASCII艺术专家':)' –