linux - 用于打印心形的 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
我找到上面的代码并尝试了它,但它没有用。
解决方案
跟进我之前的评论(不确定如何将 *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
推荐阅读
- amazon-web-services - 使用 lambda 从 Docker hub 拉取镜像并推送到 ECR
- mongodb - 跳过绑定 ID,但将其作为响应返回
- python - 在 For 循环中向后循环而不反转数组的 Python 最佳实践
- heatmap - MapBox 热图隐藏在边界之外
- ios - UISearchController 未出现在 iOS 12 中
- java - 如何将大整数转换为连续两位整数的数组?
- python - os.join.path 确实改变了目录
- c# - 即使超时配置为 2 分钟,AWS Lambda 也会在 30 秒内超时
- java - 井字棋阵列检查游戏结束
- javascript - 修改对象和数组的数组。根据数组中的匹配值对对象进行排序