繁体   English   中英

具有颜色语法的Bash Echo脚本

[英]Bash Echo Script with Color Syntax

我写了这个脚本,用作登录标语。 我的原始脚本很像您在这里看到的,只是文字颜色。 我已经重新设计了脚本,以添加粗体文本和背景色。 这样做以来,我无法正常工作。 我的语法有问题,因为该脚本将$ BOLD之后的所有内容连接到实际的输出文本。 我怀疑这与分号有关,但我已经尝试了50种不同的方法,但均未成功。 我想念什么? 我知道这应该可行,因为我已经在终端中使用以下命令对其进行了测试:

#Example of multiple formats in one line
echo -e "\e[1;41;36mHello\e[0m"

剧本:

#!/bin/bash

#constants
BOLD="\e[1m";
ENDCOLOR="\e[0m";

#font color selection
Black="30";
DarkGray="30";
Red="31";
LightRed="31";
Green="32";
LightGreen="32";
BrownOrange="33";
Yellow="33";
Blue="34";
LightBlue="34";
Purple="35";
LightPurple="35";
Cyan="36";
LightCyan="36";
LightGray="37";
White="37";

#bg color selection

bgDefault="49";
bgBlack="40";
bgRed="41";
bgGreen="42";
bgYellow="43";
bgBlue="44";
bgMagenta="45";
bgCyan="46";
bgLightGray="47";
bgDarkGray="100";
bgLightRed="101";
bgLightGreen="102";
bgLightYellow="103";
bgLightBlue="104";
bgLightMagenta="105";
bgLightCyan="106";
bgWhite="107";

# prints colored text
prnt () {

    STR=$BOLD";"$3";"$2"m"$1$ENDCOLOR;
    echo -e "$STR";
}

# prnt text textcolor bgcolor
prnt "Current Date: $(date)" $Red $bgWhite;
prnt "User Info: $(who)" $White $bgBlack;
prnt "Server Uptime: $(uptime)" $Blue $bgWhite;

设置BOLD="\\e[1" ,不设置m

使用原始代码,其输出类似于\\e[1m;107;31m ,但应为\\e[1;107;31m

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM