我需要在目錄中遞歸查找一種類型的文件。然後爲每個文件發現找到的文件作爲參數執行腳本:Bash - 防止腳本在錯誤時停止執行
#!/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 \;
它總是拋出一個錯誤 「沒有paremeters的高管」。我究竟做錯了什麼?
出於好奇,你能解釋'拋出錯誤'還是提供腳本? 'find'的執行不應該停在'stderr'上,或者即使腳本返回一個錯誤退出代碼('-exec'將會變成false,這將阻止'-exec'執行後的表達式,並導致'find '轉到下一個文件,但是因爲你的命令中'-exec'後面沒有表達式,所以這應該不重要) – BroSlow 2014-10-04 08:58:50
「convert」腳本中有ffmpeg調用。如果ffmpeg失敗,找到停止搜索。我想要防止這種情況發生,找到下一個文件。所以我要麼需要確保「convert」腳本不會向stderr或add ||添加任何錯誤如果發現腳本失敗,則查找/ exec以傳遞「true」退出代碼來查找 – user1209216 2014-10-04 10:26:06