bash:彩色输出不会停止



我正在编写一个密码验证器,在所有测试之后,我需要回答用户密码是否有效。如果有效,我会用绿色写密码如果无效,我会用红色写密码我的问题是颜色不会停止,输出的其余部分也会是彩色的,例如:您的密码无效ffsdmkl!您的密码必须至少包含10个字符,密码必须同时包含字母表和数字-->从密码开始到句子结束,它都会被涂上颜色。伙计们,我该怎么解决?

谢谢!!

green='33[0;32m'
red='33[0;31m'
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} !"
echo $RESULT
fi

您还需要定义变量clear,并在文本不再为彩色时使用它。因为clear也是一个Bash命令,所以我会将变量名更改为类似reset:的其他名称

green='33[0;32m'
red='33[0;31m'
reset='e[0m'
if [[ $valid1 == true && $valid2 == true && $valid3 == false  ]]; then
echo -e "Your password is valid! ${green}${PASSWORD} ${reset}!"
else
echo -e "Your password is NOT valid! ${red}${PASSWORD} ${reset}!"
echo $RESULT
fi

试试这个:

green='33[0;32m'
red='33[0;31m'
reset='u001b[0m'
if [[ $valid1 == true && $valid2 == true && $valid3 == false  ]]; then
echo -e "Your password is valid! ${green} ${PASSWORD} ${reset}!"
else
echo -e "Your password is NOT valid! ${red} ${PASSWORD} ${reset}!"
echo $RESULT
fi

最新更新