我有一个关于在BASH中创建ASCII图形的问题。
我有一个包含以下内容的文件:
April = 90
October = 80
是否有一些使用ASCII艺术创建图表的方法 像这样:
April
[=========================] 90
October
[================] 80
答案 0 :(得分:1)
使用bash
一个可能的解决方案是使用printf
结合seq
来打印以零长度字符串转换的数字序列,后跟固定字符(在本例中为{{ 1}}):
=
说明:
printf "%.0s=" $(seq 1 5) # output -> =====
:它只打印一系列以空格分隔的整数,从seq 1 5
到1
(即5
) 1 2 3 4 5
格式字符串printf
的增量说明:
%.0s=
:将每个后续printf参数(即数字序列)格式化为字符串; %s
:添加的点后跟一个整数(在本例中为%.0s
)表示如果该字符串大于该数字,则省略该字符串。因此,对于.0
的情况,这意味着始终省略字符串。表单0
是前一个零的较短等效版本; %.s
:我们添加了%.s=
以使字符串(省略)后跟一个固定的字符(在本例中为=
)。所以基本上要完成你的任务,你必须逐行解析输入,以获得条的实际=
和month
,将它们存储到变量中,然后打印吧,你可以使用这样的东西:
lenght
示例结果为:
四月
[====================]