首页 > 解决方案 > 用于打印心形的 Bash 脚本

问题描述

我想编写一个 bash 脚本来回显由字符串组成的形状(心)并在终端中绘制它。像这张照片:我找到了一个 bash 脚本,但它没有用。

图片

echo '\x1f\x8b\x08\x00\x95\x10\xe0R\x02\xffSPP\xf0\xc9/KU\x80\x03\x10\x8f\x0bB\xa1c.l\x82dJ\xe0\xb0\x01\xe6\x02\x0cATa.T\xf7\x02\x00\xd9\x91g\x05\xc5\x00\x00\x00'|gunzip

我找到上面的代码并尝试了它,但它没有用。

标签: linuxbashterminal

解决方案


跟进我之前的评论(不确定如何将 *gz 文件转换为十六进制字符串)...

我发现我可以做类似base64的事情,因为 base-64 字符串将更容易使用 (ymmv)。

创建一个包含所需文本“图像”的文件,例如:

$ cat heart
   Love          Love
  LoveLoveLoveLoveLove
LoveLoveLoveLoveLoveLove
LoveLoveLoveLoveLoveLove
LoveLoveLoveLoveLoveLove
  LoveLoveLoveLoveLove
    LoveLoveLoveLove
      LoveLoveLove
          Love

运行文件base64以生成表示文件内容的 base-64(而不是 hex==base-16)字符串,例如:

$ base64 heart
ICAgTG92ZSAgICAgICAgICBMb3ZlCiAgTG92ZUxvdmVMb3ZlTG92ZUxvdmUKTG92ZUxvdmVMb3ZlTG92ZUxvdmVMb3ZlCkxvdmVMb3ZlTG92ZUxvdmVMb3ZlTG92ZQpMb3ZlTG92ZUxvdmVMb3ZlTG92ZUxvdmUKICBMb3ZlTG92ZUxvdmVMb3ZlTG92ZQogICAgTG92ZUxvdmVMb3ZlTG92ZQogICAgICBMb3ZlTG92ZUxvdmUKICAgICAgICAgIExvdmUK

此时您可以echo对上述字符串使用以下修改后的命令,然后将其通过管道base64 -d(即替换`gunzip),例如:

$ echo "ICAgTG92ZSAgICAgICAgICBMb3ZlCiAgTG92ZUxvdmVMb3ZlTG92ZUxvdmUKTG92ZUxvdmVMb3ZlTG92ZUxvdmVMb3ZlCkxvdmVMb3ZlTG92ZUxvdmVMb3ZlTG92ZQpMb3ZlTG92ZUxvdmVMb3ZlTG92ZUxvdmUKICBMb3ZlTG92ZUxvdmVMb3ZlTG92ZQogICAgTG92ZUxvdmVMb3ZlTG92ZQogICAgICBMb3ZlTG92ZUxvdmUKICAgICAgICAgIExvdmUK=" | base64 -d
   Love          Love
  LoveLoveLoveLoveLove
LoveLoveLoveLoveLoveLove
LoveLoveLoveLoveLoveLove
LoveLoveLoveLoveLoveLove
  LoveLoveLoveLoveLove
    LoveLoveLoveLove
      LoveLoveLove
          Love

注意:base64 -d== 从 base-64 转换为文件的原始内容。


对于较小的字符串,您可以gzip先创建heart文件,然后通过 运行 *gz 文件base64,例如:

$ gzip heart
    => generates file heart.gz
$ base64 heart.gz
H4sICHSiC14AA2hlYXJ0AFNQUPDJL0tVgAMQjwtCoWMubIJkSuCwAeYCDEFUYS409wIAcgvdzcYAAAA=

然后要回到图像,我们必须反向运行这些步骤:

echo "H4sICHSiC14AA2hlYXJ0AFNQUPDJL0tVgAMQjwtCoWMubIJkSuCwAeYCDEFUYS409wIAcgvdzcYAAAA=" | base64 -d | gunzip
   Love          Love
  LoveLoveLoveLoveLove
LoveLoveLoveLoveLoveLove
LoveLoveLoveLoveLoveLove
LoveLoveLoveLoveLoveLove
  LoveLoveLoveLoveLove
    LoveLoveLoveLove
      LoveLoveLove
          Love

推荐阅读