在 Bash 中反转整行的颜色

在 Bash 中反转整行的颜色

我知道标题可能看起来有点令人困惑。不过,我有一个例子,GNU Nano。 Nano 编辑器的顶部有这一行,其颜色完全反转。GNU Nano 顶部栏的屏幕截图有谁知道如何在 Bash 脚本中实现这一点?

答案1

这很简单,你可以试试这个:

# Reset
reset='\033[0m'

# White Background
BG='\033[47m'

# Black Foreground
FG='\033[0;30m'

# Usage
echo -e "$FG$BG This will print black text on white background $reset"

如果你想要整行:

reset='\033[0m'
BG='\033[47m'
FG='\033[0;30m'

text="A black text on white"
cols=$(tput cols)

# Left Aligned
x=$((cols-${#text}))

printf "$FG$BG%s%*s$reset\n" "$text" $x

# Centered text
x_center=$(((${#text}+cols)/2))
x_rest=$((cols-x_center))

printf "$FG$BG%*s%*s$reset\n" $x_center "$text" $x_rest

输出示例: 白底黑字

更多详情:https://stackoverflow.com/a/28938235/3689465

相关内容