Bash - 防止脚本因错误而停止执行

标签 bash error-handling find exec

我需要在目录中递归查找一种类型的文件。然后对于找到的每个文件,以找到的文件作为参数执行脚本:

#!/bin/bash
find /mnt/storage/content/www/html/smartsite/src/data/resource/ ! -path "*/tmp/*" -regextype posix-awk -iregex "(.*.toConv)" -exec /mnt/storage/content/www/html/smartsite/cron/VideoConvert/convert {} \;

它按预期工作,但是当调用脚本(转换)时执行会停止并抛出错误。我想防止这种情况并继续执行找到的下一个文件。例如,无论我做什么

/convert || true {} \;

/convert {} || true \;

它总是抛出错误“No paremeters for exec”。我做错了什么?

最佳答案

试试这个

find ... -exec bash -c "convert {} || true" ";"

find ... -print0 | xargs -r -0 -i convert {}

关于Bash - 防止脚本因错误而停止执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26190696/

相关文章:

java - 如何从 java 程序运行无限循环 shell 脚本

xcode - 转换Swift self.navigationItem.title = show.uppercased()

javascript - mongoose findOne() 调用不保存且输出无错误

unix - 抑制 find & grep "cannot open"输出

vim - 在 Vim 中搜索整个单词(破折号字符)

bash - 我如何在本地获取我在 Docker 格式环境文件中定义的环境变量?

c - 哪种数据结构可能是更有效的实现?

javascript - 如何使用 node.js 获取系统统计信息

c - 使用 itoa 时未处理的异常

google-apps-script - Google脚本自定义函数错误解决方法