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

尝试管道输出时遭遇Bash语法错误的问题求助

解决Bash脚本里的|&语法错误问题

嘿,这个错误我太熟了——问题就出在你脚本里的|&上!

为啥会报错?

你写的npm test |& grep -v '[HPM]'里,&是HTML里用来转义&的特殊字符,但Bash脚本根本不吃这一套。Bash里要同时捕获命令的stdout和stderr并传给下一个命令,用的是|&(等价于2>&1 |)。而你的脚本里把|&丢给Bash,它会把这解析成|&加上多余的amp;,自然就报“unexpected token”的语法错误了。

怎么改?

直接把|&换成|&就行,修正后的完整脚本示例:

#!/bin/bash
npm test |& grep -v '[HPM]'
if [[ $? -ne 0 ]]; then 
    # 这里可以补上你需要的错误处理逻辑,比如提示失败、退出脚本等
    echo "测试用例执行失败啦"
    exit 1
fi

要是你需要兼容一些老版本的Bash(有些旧版本不支持|&语法),也可以用更通用的写法:

npm test 2>&1 | grep -v '[HPM]'

这个写法和|&功能完全一样,都是把标准错误输出重定向到标准输出,再通过管道交给grep过滤掉带[HPM]的行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 12:34:08