📜  反应原生背景渐变 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:07:24.067000             🧑  作者: Mango

反应原生背景渐变 - Shell-Bash

介绍

在shell脚本中,我们可以使用tput命令来修改终端的颜色。通过使用tput命令,我们可以修改终端的前景色和背景色。不过,除了单一的颜色之外,我们还可以使用反应原生背景渐变来创建更加动态和丰富的终端颜色。

原理

反应原生背景渐变是一种利用终端背景色调色的技术。它的原理是,使用两种颜色来创建一个渐变色。我们先使用一种颜色绘制整个终端背景,然后在终端中心绘制一个小的渐变矩形,渐变矩形的颜色从浅色到深色,这样就形成了一个反应原生背景渐变效果。

代码

实现反应原生背景渐变的Shell脚本代码如下:

#!/bin/bash

# 获取终端宽高
cols=$(tput cols)
rows=$(tput lines)

# 渐变矩形的中心点和半径
x=$(($cols/2))
y=$(($rows/2))
r=10

# 渐变色数组
colors=(
    "000000"
    "1c1c1c"
    "383838"
    "555555"
    "717171"
    "8e8e8e"
    "aaaaaa"
    "c7c7c7"
)

# 渐变色数量
num_colors=${#colors[@]}

# 循环遍历绘制渐变矩形
for (( i=$r; i>=1; i-- )); do
    color_idx=$(($i*($num_colors-1)/$r))
    tput setab ${colors[$color_idx]}
    tput cup $(($y-$i)) $(($x-$i))
    printf ' %.0s' $(seq 1 $((2*$i)))
done

# 绘制正方形
tput setab 7 # 白色背景
tput cup $(($y-$r-1)) $(($x-$r-1))
printf ' %.0s' $(seq 1 $((2*$r+2)))

# 清除终端属性
tput sgr0
使用

在终端中执行上述代码,即可看到反应原生背景渐变的效果。可以根据自己的需要修改渐变矩形的中心点和半径、渐变色数组等参数。

参考