You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Bash彩色输出不终止问题:密码校验器后续输出仍保留配色

问题原因
  • 你没有定义重置终端颜色的ANSI转义序列变量clear,终端设置完红绿颜色后没有收到重置指令,就会一直沿用当前配色输出后续所有内容
  • 不合规的逻辑分支里,你输出红色密码后完全没有加重置颜色的代码,连你未定义的${clear}都没写,所以后续输出的$RESULT也会继承红色配色
修复方案
  1. 首先定义颜色重置序列变量clear,取值为\033[0m,作用是让终端配色恢复到默认状态
  2. 在所有彩色内容输出完成的位置,立刻插入${clear}重置颜色
  3. 可以顺带去掉变量前后多余的空格,避免输出内容出现不必要的空白

修正后的完整代码如下:

# 定义颜色变量,新增重置颜色的clear变量
green='\033[0;32m'
red='\033[0;31m'
clear='\033[0m'

if [[ $valid1 == true && $valid2 == true && $valid3 == false  ]]; then
   # 输出绿色密码后立刻重置颜色
   echo -e "Your password is valid! ${green}${PASSWORD}${clear}!"
else
   # 输出红色密码后立刻重置颜色
   echo -e "Your password is NOT valid! ${red}${PASSWORD}${clear}!"
   echo "$RESULT"
fi

内容的提问来源于stack exchange,提问作者Eylon Levi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 18:48:03