在shell脚本中,如果我们希望在控制台能显示带颜色的文字, 那就需要使用shell中的色彩专用变量代码来进行.
shell中的各种颜色代码定义
# 颜色定义
BLACK="\033[0;30m"
DARK_GRAY="\033[1;30m"
BLUE="\033[0;34m"
LIGHT_BLUE="\033[1;34m"
GREEN="\033[0;32m"
LIGHT_GREEN="\033[1;32m"
CYAN="\033[0;36m"
LIGHT_CYAN="\033[1;36m"
RED="\033[0;31m"
LIGHT_RED="\033[1;31m"
PURPLE="\033[0;35m"
LIGHT_PURPLE="\033[1;35m"
BROWN="\033[0;33m"
YELLOW="\033[0;33m"
LIGHT_GRAY="\033[0;37m"
WHITE="\033[1;37m"
# 颜色显示结尾定义
NC="\033[0m"
在我们定义了以上的颜色变量后就可以在shell里面使用这些变量来让shell帮我们把文字显示为彩色 了.
如我们需要将 Hello world 在控制台显示为红色
代码如下:
#!/bin/bash
RED="\033[0;31m"
NC="\033[0m"
echo "${RED} Hello world! ${NC}"
我们只需要定义红色代码变量和结尾变量, 然后在要显示颜色的文字前后加上变量即可.
shell文字彩色显示完整示例
下面这个shell代码就可以将各种不同的文本以不同的颜色进行显示, 作用是用来在macos中修复损坏app提示.
#!/bin/bash
clear
BLACK="\033[0;30m"
DARK_GRAY="\033[1;30m"
BLUE="\033[0;34m"
LIGHT_BLUE="\033[1;34m"
GREEN="\033[0;32m"
LIGHT_GREEN="\033[1;32m"
CYAN="\033[0;36m"
LIGHT_CYAN="\033[1;36m"
RED="\033[0;31m"
LIGHT_RED="\033[1;31m"
PURPLE="\033[0;35m"
LIGHT_PURPLE="\033[1;35m"
BROWN="\033[0;33m"
YELLOW="\033[0;33m"
LIGHT_GRAY="\033[0;37m"
WHITE="\033[1;37m"
NC="\033[0m"
echo ""
echo ""
echo -e "${LIGHT_CYAN} mac.tekin.cn ${NC} - 精品Mac/win软件分享"
parentPath=$( cd "$(dirname "${BASH_SOURCE[0]}")" ; pwd -P )
cd "$parentPath"
appPath=$( find "$parentPath" -name '*.app' -maxdepth 1)
# 截取最后一次出现 / 右边的内容, 如: /Applications/Sublime Text.app 获取 Sublime Text.app
appName=${appPath##*/}
appBashName=${appName// /\ }
appDIR="/Applications/${appBashName}"
echo ""
echo -e "『${appBashName} 已损坏,无法打开/ 来自身份不明的开发者』等问题修复工具"
echo ""
#未安装APP时提醒安装,已安装绕过公证
if [ ! -d "$appDIR" ];then
echo ""
echo -e "执行结果:${RED}您还未安装 ${appBashName} ,请先安装${NC}"
else
#绕过公证
echo -e "${YELLOW}请输入开机密码,输入完成后按下回车键(输入过程中密码是看不见的)${NC}"
sudo spctl --master-disable
sudo xattr -rd com.apple.quarantine /Applications/"$appBashName"
echo ""
echo ""
echo -e "执行结果:${GREEN}修复成功!${NC}您现在可以正常运行 ${appBashName} 了。"
echo -e ""
echo -e "更多精品Mac软件尽在tekin.cn精品软件${BLUE} - https://mac.tekin.cn ${NC}"
fi
echo ""
echo ""
echo -e "本窗口可以关闭啦!"