Ubuntu下Dracula主题中Bash脚本输出颜色溢出到下一行如何解决
问题原因
这个颜色溢出问题和Dracula主题无关,是脚本未主动重置终端颜色属性导致的:
你在循环中设置了47m(白色背景)、40m(黑色背景)的ANSI转义码后,没有主动调用重置序列,终端会一直沿用最后一次设置的背景色,你每行末尾的echo ""仅负责换行,换行后的行首空白会被最后设置的背景色填充,就出现了颜色溢到下一行的问题。
修复方案
修改脚本,在每行所有色块输出完成后,先输出\033[0m(重置所有终端文本属性),再换行即可。
修正后的完整代码
#!/bin/bash for i in {1..9} do for j in {1..9} do total=$(( $i+$j )) tmp=$(( $total%2 )) if [ $tmp -eq 0 ]; then echo -e -n "\033[47m " else echo -e -n "\033[40m " fi done # 每行结束先重置颜色再换行 echo -e "\033[0m" done echo -e "\n"
内容的提问来源于stack exchange,提问作者GauravSolo
相关产品推荐
相关产品推荐

