随笔 - 55  文章 - 0  评论 - 0  阅读 - 1047

11_打印颜色

1.shell 颜色控制
#!/bin/bash

# 字体颜色
#   重置=0
#   黑色=30
#   红色=31
#   绿色=32
#   ***=33
#   蓝色=34
#   洋红=35
#   青色=36
#   白色=37.

# 背景颜色
#   重置=0
#   黑色=40
#   红色=41
#   绿色=42
#   ***=43
#   蓝色=44
#   洋红=45
#   青色=46
#   白色=47

# 前景色(文字颜色): echo -e "\e[${num}m有颜色的文字"
#   39默认前景色   30黑色  31红色         32绿色   33黄色     34蓝色          35品红   36青色   37浅灰
#       90深灰色   91红灯  92浅绿色  93淡黄色   94浅蓝   95浅洋红色   96浅青色  97白色

# 背景色: echo -e "\e[$(num)m有背景颜色的文字"
#   49默认背景颜色     40黑色       41红色          42绿色   43黄色         44蓝色         45品红       46青色      47浅灰
#   100深灰色         101红灯       102浅绿色       103淡黄色  104浅蓝    105浅洋红色     106浅青色      107白色

# 属性:
#   \e[0m             关闭所有属性
#   \e[1m             设置高亮度
#   \e[4m             下划线
#   \e[5m             闪烁
#   \e[7m             反显
#   \e[8m             消隐
#   \e[30m -- \e[37m 设置前景色
#   \e[40m -- \e[47m 设置背景色
#   \e[nA             光标上移n行
#   \e[nB             光标下移n行
#   \e[nC             光标右移n行
#   \e[nD             光标左移n行
#   \e[y;xH           设置光标位置
#   \e[2J             清屏
#   \e[K              清除从光标到行尾的内容
#   \e[s              保存光标位置
#   \e[u              恢复光标位置
#   \e[?25l           隐藏光标
#   \e[?25h           显示光标

# 属性示例:
#   1    粗体高亮                    echo -e "\e[1mBold"
#   2    变暗                        echo -e "\e[2mDim"
#   4    下划线                        echo -e "\e[4mUnderlined"
#   5    闪烁                          echo -e "\e[5mBlink"
#   7    反转 (反转前景色和背景色)      echo -e "\e[7minverted"
#   8    隐藏(对密码有用)             echo -e "\e[8mHidden"

# 结合:
#   echo -e "\e[41;32m文字\e[0m"                      红色背景绿色字并清除属性
#   echo -e "\e[1;3H*\e[0m"                           第一行第三列输出一个*
#   echo -e "\e[3;3H\e[44;31m*\e[0m"                  第三行第三列输出一个蓝色背景红色字
#   echo -e "\e[5;31;42m文字\e[0m"                    闪烁、红色背景、绿色的文字并清除属性
#   echo -e "\e[3;3H\e[5;31;42m*************\e[0m"    第三行第三列输出一排闪烁的星

function init_color() {
    # 红色字
    echo -ne "\e[31mAAA\e[0m"

    # 红色背景
    echo -ne "\e[41m   \e[0m"

    echo -ne "\e[41m\e[34mAAA\e[0m"

    # 第三行第二列打印一个A
    echo -e "\e[3;2HA\e[0m"

    # 第三行第二列打印一个闪烁红色的A
    echo -e "\e[3;2H\e[31m\e[5mA\e[0m\e[0m\e[0m"
    echo -e "\e[3;2H\e[31m\e[5mA\e[0m"

}

init_color
2.打印棋盘
  • 方法 1
#!/bin/bash

function f2() {
    for i in {1..8}; do
        for j in {1..8}; do
            sum=$((i + j))
            if [ $((sum % 2)) -eq 0 ]; then
                echo -ne "\e[46m \e[0m"
            else
                echo -ne "\e[47m \e[0m"
            fi
        done
        echo
    done
}

  • 方法 2
#!/bin/bash

# 全局变量
j=0

function gen_col() {
    for i in {1..8}; do
        num1=$((i % 2)) # 局部变量
        if [ $num1 -eq 1 ]; then
            echo -e "\e[${1}m\e[${j};${i}H \e[0m"
        else
            echo -e "\e[${2}m\e[${j};${i}H \e[0m"
        fi
    done
}

function f1() {
    for k in {1..8}; do
        # k 局部变量
        j=$k
        num2=$((j % 2)) # 局部变量
        if [ $num2 -eq 1 ]; then
            gen_col 46 47
        else
            gen_col 47 46
        fi
    done
}
posted on   鸟叔书  阅读(29)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示