Bashスクリプト:標準エラーメッセージをカスタムエラーメッセージに変更する

Bashスクリプト:標準エラーメッセージをカスタムエラーメッセージに変更する

私は独自の小さなバックアップスクリプトを書こうとしました。スクリプトを実行すると問題が発生しますが、コマンドはrm関係ありません。私はまだ出力を処理したいのですが(ジョブが失敗したかどうかによって異なるメッセージを表示します)、rm現在は次のようになります。
ls -t | tail -n +$startnumber | xargs -d '\n' rm && echo "Removed old backup(s)." || echo "No more than $keepnumber files; nothing to do."
残念ながら、出力は次のようになります。
rm: missing operand Try 'rm --help' for more information. No more than 14 files; nothing to do.
最初の2行を削除して直接出力したいです。 「より明確な」メッセージ。私は試してみましたが、rm -fこれは常に(そして不正確に)成功した​​出力をトリガします。

ベストアンサー1

これらのrmメッセージは標準エラー(stderr)で送信されます。標準エラー出力(stderr)を次にリダイレクトできます/dev/null

xargs -d '\n' rm 2>/dev/null

これにより、両方の行が端末に印刷されるのを防ぎ、カスタムメッセージのみが表示されます。

おすすめ記事