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

Linux终端Bash使用for循环输出颜色代码不生效问题求助

问题根因

你编写的代码存在变量解析歧义:Bash解析\e[$imColoredText时,会将$im识别为完整变量名,而你仅定义了变量i、未定义变量im,最终生成的ANSI颜色控制序列无效,所以无法输出彩色内容。

解决方案

核心是明确分隔变量名和后续的固定字符m,最常用的实现方式是用花括号包裹变量名,修正后的完整代码如下:

#!/bin/bash

for i in {31..35}
do
    echo -e "Normal \e[${i}mColoredText  \e[0m"
done

也可以选择把变量和前后字符串分开拼接,效果完全一致:

echo -e "Normal \e["$i"mColoredText  \e[0m"

修正后运行脚本,就可以依次输出红、绿、黄、蓝、洋红5种颜色的文本,和预期效果一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 23:24:03