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

脚本内STDOUT重定向至文件异常的问题求助

脚本内STDOUT重定向至文件异常的问题求助

刚搞定了脚本处理名称带空格的目录的问题(之前的问题编号1447738,再次感谢各位!),现在我想把脚本的输出写入一个文本文件,却碰到了棘手的问题。

我的脚本代码如下:

find . -type d -print0 | while read -r -d $'\0' dir; do

cd "$dir"

for file in *.ogg *.wav *.mp3

do

duration=$(ffprobe "$file" 2>&1 | awk '/Duration/ { print $2 }')

echo -e "$duration\t$file"

done | sort -n

cd - > /dev/null

done

我原本以为只要把echo那行改成下面这样,就能把输出写入文件:

echo -e "$duration\t$file" > length-check.log

结果怪事发生了:不加重定向的时候,脚本的输出完全正常,但加了>之后,日志文件里只有一行内容:*.ogg*.wav*.mp3。

我知道可以通过这种方式运行脚本来获取输出:

./length-check.sh > length-check.log

但我还是想弄明白,脚本内部的写法到底哪里出错了,希望有人能帮我指出正确的写法。

再次感谢大家的帮助!

备注:内容来源于stack exchange,提问作者JamesB

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.23 08:54:07