ファイルを見つけて実行が成功したことを確認してください。

ファイルを見つけて実行が成功したことを確認してください。

成功を数えたい処刑されたファイルを削除しましたが消えることはできません。

これが私が持っているものです:

successfulScripts=0
allScripts=0
commandline=$(find . -name "*.sh" -exec '{}' \;)
    if [ $commandline -gt 0 ]; then
successfulScripts=$(($successfulScripts+1))
allScripts=$(($allScripts+1))
    else
allScripts=$(($allScripts+1))
    fi
echo "$successfulScripts out of $allScripts scripts were executed successfully"

スクリプトの内容も見せても構いませんが、軽蔑する方法はないでしょうか?

ベストアンサー1

findスクリプトから返された値を使用できます。例えば

find . -name "*.sh" -exec '{}' \; -print

スクリプトの実行後に-printゼロを返すスクリプトの名前のみが印刷されます。出力はスクリプト出力とインターリーブされるため、スクリプト出力を別の場所にリダイレクトしたい場合があります。一方、最後にクールなサマリーを印刷するには、次のようなものを探しています。

{ find . -name '*.sh' -exec sh -c 'if "$1" >&3; then
    echo success; else echo fail; fi' _ {} \; \
    | awk '/success/{s++} /fail/{e++}
    END {printf "%d successes out of %d\n", s, s + e}
 '; } 3>&1

おすすめ記事