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

Bash脚本输出与参考文件对比异常求助:内容一致却返回0

问题分析与解决

你的命令存在两个关键错误,导致明明内容一致却返回0:

错误点1:管道使用逻辑错误

result=$(./test.sh)| cmp -s $result test 里的管道是把赋值命令本身的输出传给cmp,但result=$(...)这种赋值操作不会向标准输出输出任何内容,所以cmp接收到的是空数据,自然和test文件对比失败。

错误点2:cmp参数用法错误

cmp -s $result test 中,cmp的第一个参数需要是文件名,而你把$result(test.sh的输出内容)当作文件名传入,cmp会尝试打开以该内容命名的文件,这显然不存在,必然对比失败。同时,用变量存储132KB的内容还会遇到分词、通配符替换的问题,破坏原内容的完整性。

正确的命令写法

直接将test.sh的输出通过管道传给cmp,用-表示从标准输入读取内容,和test文件对比:

./test.sh | cmp -s - test && echo 1 || echo 0

当test.sh的输出和test文件完全一致时,cmp返回0,触发&& echo 1;不一致则返回非0,触发|| echo 0。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 02:25:52