gpt4 book ai didi

linux - 为什么 cron 执行的部分脚本会失败,除非将 stderr 定向到/dev/null?

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:01:17 25 4
gpt4 key购买 nike

这是我通常从 cron 执行的脚本片段:

if [ "$RESCAN_COMMAND" = "wipecache" ]; then
log "Linking cover art."
find $FLAC_DIR -name "*.jpg" | while read f; do c=`echo $f | sed -e 's/flac/mp3/g'`; ln -s "$f" "$c"; done
log "Done linking cover art"
fi

从命令行运行时,该脚本可以完美运行。但是当由 cron(作为同一用户)运行时,它在 find 行的某处失败。未记录“完成”消息,脚本不会继续超出 if block 。

find 行创建从 flac/Artist/Album/cover.jpgmp3/Artist/Album/cover.jpg 等文件的链接>。有几百个文件要链接。该命令会向 stderr 生成大量输出,因为大多数(如果不是全部)链接已经存在。

凭直觉,我尝试将 ln 命令的 stderr 重定向到 /dev/null:

    find $FLAC_DIR -name "*.jpg" | while read f; do c=`echo $f | sed -e 's/flac/mp3/g'`; ln -s "$f" "$c" 2>/dev/null; done

通过该更改,脚本可以从 cron(以及命令行)成功执行。

我很想知道为什么。

最佳答案

关于linux - 为什么 cron 执行的部分脚本会失败,除非将 stderr 定向到/dev/null?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8962933/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com