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

如何在npm脚本中执行bash脚本时保留文本颜色?

解决npm脚本中echo颜色转义序列失效的问题

原因

npm 默认会用 /bin/sh 执行脚本,部分系统的 sh 环境里,echo 默认不解析 \033 这类转义序列,导致颜色代码被当作普通文本输出。而直接在终端运行脚本时用的是 bash,bash 的 echo 会自动解析转义序列,所以颜色显示正常。

解决方法

方法1:给echo添加-e参数

修改脚本中的echo命令,加上-e参数让它解析转义序列:

echo -e "\033[1;31mACTION REQUIRED: \033[0m"

方法2:改用printf命令

printf 对转义序列的解析兼容性更好,几乎所有shell环境都支持,替换成:

printf "\033[1;31mACTION REQUIRED: \033[0m\n"

注意要手动添加\n实现换行,因为printf不像echo默认会自动换行。

方法3:强制npm用bash执行脚本

在package.json的脚本里明确指定用bash运行你的脚本,比如:

{
  "scripts": {
    "your-script": "bash ./your-script-file.sh"
  }
}

这样脚本会在bash环境下执行,和你直接在终端运行的行为一致,原echo代码无需修改。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 23:22:11