shell判断及颜色
判断标准写法(数字0代表成功)
# 基本格式
if(判断开始)
then(成功执行)
else(不成功执行)
fi(判断结束)
# 演示写法
#!/bin/bash
# 安装软RAID软件并判断成功与否
echo "开始安装 mdadm..."
if yum install -y mdadm
then
echo -e "\033[32m安装成功\033[0m" # 绿色输出
else
echo -e "\033[31m安装失败\033[0m" # 红色输出
exit 1 # 代表安装失败并退出
fi
# 演示写法
#安装软RAID软件并判断成功与否
# 安装软RAID软件并判断成功与否
if yum install -y mdadm
then
echo "安装成功"
else
echo "安装失败"
fi
# test 命令 / [ ] 常用参数
## 文件测试
-e 文件或目录是否存在
-f 存在且为普通文件
-d 存在且为目录
-r 存在且当前用户有读权限
-w 存在且当前用户有写权限
-x 存在且当前用户有执行权限
-L 存在且为符号链接(软链接)
-b 存在且为块设备文件
## 字符串测试
-z 字符串长度为 0 为真
-n 字符串长度不为 0 为真
= 字符串相等为真(也可用 ==)
!= 字符串不相等为真
## 数字比较(推荐只用这些)
-eq 相等 ==
-ne 不等于 !=
-lt 小于 <
-gt 大于 >
-le 小于等于 ≤
-ge 大于等于 ≥
## 四种写法对比
写法1: test 选项 参数
写法2: [ 选项 参数 ] # 括号前后必须有空格
写法3: [[ 选项 参数 ]] # 增强版,支持 && || !,推荐
写法4: (( 数值表达式 )) # 纯数值,支持 > < >= <= == !=
## 逻辑运算符
[ ] 中: -a (与) -o (或) ! (非)
[[ ]] 中: && (与) || (或) ! (非)
(()) 中: && (与) || (或) ! (非)
## 符号介绍
&& (与运算) 当前一条命令执行成功(返回 0)时,才执行后一条命令
|| (或运算) 当前一条命令执行失败(返回非 0)时,才执行后一条命令
; 顺序执行多条命令,无论前一条是否成功,都会执行后一条
| 管道符,将前一条命令的标准输出传给后一条命令作为标准输入
> 输出重定向(覆盖),将命令输出写入文件,覆盖原内容
>> 输出追加重定向,将命令输出追加到文件末尾
< 输入重定向,从文件读取内容作为命令的输入
<< 此处文档(Here Document),将键盘输入重定向到命令,直到遇到结束符
* 通配符,匹配任意长度(含 0 个)的任意字符
? 通配符,匹配任意单个字符
[] 通配符,匹配括号内任意一个字符,如 [abc] 匹配 a/b/c
& 后台运行,将命令放入后台执行
\ 转义符,取消特殊字符的含义,如 \* 表示普通星号
'' 单引号,保留字面值,所有特殊字符失效
"" 双引号,保留字面值,但 $、`、\ 仍有效
`` 反引号,执行命令替换(等价于 $())
颜色使用
# ========== 前景色(文字颜色) ==========
echo -e "\033[30m黑色文字\033[0m"
echo -e "\033[31m红色文字\033[0m"
echo -e "\033[32m绿色文字\033[0m"
echo -e "\033[33m黄色文字\033[0m"
echo -e "\033[34m蓝色文字\033[0m"
echo -e "\033[35m品红文字\033[0m"
echo -e "\033[36m青色文字\033[0m"
echo -e "\033[37m白色文字\033[0m"
# ========== 亮色前景 ==========
echo -e "\033[90m亮黑色(灰色)\033[0m"
echo -e "\033[91m亮红色\033[0m"
echo -e "\033[92m亮绿色\033[0m"
echo -e "\033[93m亮黄色\033[0m"
echo -e "\033[94m亮蓝色\033[0m"
echo -e "\033[95m亮品红\033[0m"
echo -e "\033[96m亮青色\033[0m"
echo -e "\033[97m亮白色\033[0m"
# ========== 背景色 ==========
echo -e "\033[40m黑色背景\033[0m"
echo -e "\033[41m红色背景\033[0m"
echo -e "\033[42m绿色背景\033[0m"
echo -e "\033[43m黄色背景\033[0m"
echo -e "\033[44m蓝色背景\033[0m"
echo -e "\033[45m品红背景\033[0m"
echo -e "\033[46m青色背景\033[0m"
echo -e "\033[47m白色背景\033[0m"
# ========== 亮色背景 ==========
echo -e "\033[100m亮黑背景\033[0m"
echo -e "\033[101m亮红背景\033[0m"
echo -e "\033[102m亮绿背景\033[0m"
echo -e "\033[103m亮黄背景\033[0m"
echo -e "\033[104m亮蓝背景\033[0m"
echo -e "\033[105m亮品红背景\033[0m"
echo -e "\033[106m亮青背景\033[0m"
echo -e "\033[107m亮白背景\033[0m"
# ========== 样式修饰 ==========
echo -e "\033[1m加粗文字\033[0m"
echo -e "\033[2m变暗文字\033[0m"
echo -e "\033[3m斜体文字\033[0m"
echo -e "\033[4m下划线文字\033[0m"
echo -e "\033[5m闪烁文字\033[0m"
echo -e "\033[7m反转文字\033[0m"
echo -e "\033[8m隐藏文字\033[0m"
echo -e "\033[9m删除线文字\033[0m"
# ========== 组合使用 ==========
echo -e "\033[1;32m加粗绿色\033[0m"
echo -e "\033[33;41m黄色文字红色背景\033[0m"
echo -e "\033[1;37;42m加粗白色文字绿色背景\033[0m"
echo -e "\033[4;94m下划线亮蓝色\033[0m"
echo -e "\033[1;31;43m加粗红色文字黄色背景\033[0m"
echo -e "\033[7;36m反转青色\033[0m"
# ========== 常用场景 ==========
echo -e "\033[32m✓ 安装成功\033[0m"
echo -e "\033[31m✗ 错误:文件不存在\033[0m"
echo -e "\033[33m⚠ 警告:磁盘空间不足\033[0m"
echo -e "\033[34mℹ 正在加载配置...\033[0m"
echo -e "\033[1;32m★★★ 部署完成 ★★★\033[0m"
echo -e "\033[7m注意:此操作不可逆\033[0m"颜色变量
#!/bin/bash
# 重置(恢复默认)
RESET='\033[0m'
# 字体样式
BOLD='\033[1m' # 加粗
DIM='\033[2m' # 暗淡
UNDERLINE='\033[4m' # 下划线
BLINK='\033[5m' # 闪烁(别用,烦人)
REVERSE='\033[7m' # 反色
# 前景色(字体颜色)
BLACK='\033[30m'
RED='\033[31m'
GREEN='\033[32m'
YELLOW='\033[33m'
BLUE='\033[34m'
PURPLE='\033[35m' # 紫色
CYAN='\033[36m' # 青色
WHITE='\033[37m'
# 背景色
BG_BLACK='\033[40m'
BG_RED='\033[41m'
BG_GREEN='\033[42m'
BG_YELLOW='\033[43m'
BG_BLUE='\033[44m'
BG_PURPLE='\033[45m'
BG_CYAN='\033[46m'
BG_WHITE='\033[47m'
# 亮色(更鲜艳)
LIGHT_RED='\033[91m'
LIGHT_GREEN='\033[92m'
LIGHT_YELLOW='\033[93m'
LIGHT_BLUE='\033[94m'
LIGHT_PURPLE='\033[95m'
LIGHT_CYAN='\033[96m'
LIGHT_WHITE='\033[97m'
## 基础用法
echo -e "${RED}这是红色文字${RESET}"
echo -e "${GREEN}这是绿色文字${RESET}"
echo -e "${YELLOW}这是黄色警告${RESET}"
## 组合用法
# 红色 + 加粗
echo -e "${BOLD}${RED}严重错误!${RESET}"
# 绿色 + 背景红(红底绿字,很醒目)
echo -e "${BG_RED}${GREEN}危险!${RESET}"
# 黄色 + 下划线
echo -e "${YELLOW}${UNDERLINE}注意:磁盘快满了${RESET}"exit使用及使用
exit 1 # 退出脚本,并返回状态码 1(表示失败)
exit 0 # 退出脚本,并返回状态码 0(表示成功)
exit # 退出脚本,返回上一个命令的状态码
echo "========== 常用退出状态码 =========="
echo "0 → 成功"
echo "1 → 通用错误"
echo "2 → 用法错误(参数不正确)"
echo "3 → 文件/命令未找到"
echo "4 → 权限不足"
echo "5 → 网络错误"
echo "6 → 超时"
echo "7 → 无效输入"
echo "126 → 不可执行"
echo "127 → 命令未找到"
echo "130 → 被中断 (Ctrl+C)"
echo "143 → 被终止 (kill)"
echo "255 → 退出码超出范围"
原创
shell判断及颜色
本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
评论交流
欢迎留下你的想法