【问题标题】:Center Justify/align ASCII art in bash在 bash 中居中对齐/对齐 ASCII 艺术
【发布时间】:2017-11-11 08:08:24
【问题描述】:

我只是在做我的 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"

【问题讨论】:

  • 如果您有不同宽度的线条,您可以使用变体,例如printf "%$(( ( ${COLUMNS} - ${#string}) / 2 ))s\n" "$string"(对于相同的宽度,choroba 显示的固定缩进是到的方式)
  • 再一次,大卫。你是真正的兄弟,
  • 完成此项目后,您将成为 ANSI/ASCII 艺术专家:)

标签: bash shell unix terminal ascii-art


【解决方案1】:

您可以使用返回终端宽度的 COLUMNS 环境变量。

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▄██████▄ ";

【讨论】:

  • 如果不是交互式shell,我建议在开头插入以下内容,否则变量COLUMNS没有设置:COLUMNS=$(tput cols)或eval $(resize)
猜你喜欢
  • 1970-01-01
  • 2015-07-25
  • 2018-05-21
  • 1970-01-01
  • 2021-06-01
  • 2011-03-13
  • 2016-08-17
  • 2011-11-29
  • 2013-02-22
相关资源
最近更新 更多