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  → 退出码超出范围"