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

如何在终端输出中通过变量名解析另一个变量实现着色

实现终端着色输出的可行方案

方法1:通过eval解析变量与转义序列

修改script.sh,让Shell解析文件中的颜色变量占位符,同时识别颜色转义码:

BLUE="\033[0;34m"
RED="\033[0;31m"
RESET="\033[0m" # 必须添加,避免后续终端颜色异常

# 读取文件内容并完成变量替换、转义解析
eval "echo -e \"$(cat example.txt)\"$RESET"

方法2:使用envsubst替换环境变量

如果系统安装了gettext包(自带envsubst工具),可以用它批量替换文件中的变量占位符:

BLUE="\033[0;34m"
RED="\033[0;31m"
RESET="\033[0m"

# 导出变量到环境,让envsubst可读取
export BLUE RED
# 替换占位符后解析转义码,最后重置颜色
cat example.txt | envsubst | echo -e "$(cat -)$RESET"

方法3:用sed直接替换占位符

无需Shell变量解析,直接用sed把文件中的${BLUE}、${RED}替换为实际颜色码:

BLUE="\033[0;34m"
RED="\033[0;31m"
RESET="\033[0m"

# 全局替换占位符并输出,最后重置颜色
sed -e "s/\${BLUE}/$BLUE/g" -e "s/\${RED}/$RED/g" example.txt && echo -n "$RESET"

关键注意点

所有方案都必须加入RESET颜色码,否则执行脚本后终端会持续保持最后设置的颜色,影响后续操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 18:57:10