シェルスクリプトをより安全にしようとしています。何らかの理由で変数が定義されていない場合は、デフォルト値の使用を検討してください。たとえば、次のようになります。
rm -r "${OUTPUT_DIR:-/dev/null/this_path_does_not_exists}"
存在しないパスを使用することが私が思いついた解決策です。しかし、システム全体の受信者()がある場合は、/dev/null
システムに影響を与えずに安全に削除できるファイルやダミーファイルがあるのではないかと思いました。だから私の質問は次のとおりです。次のファイルはありますか?
- 破損、機能損失、またはデータ損失なしで削除可能
- 自動的に「再生」されます(システムから最初に削除されない可能性があります)。
- スーパーユーザーで削除しても削除されません。 (驚くべきことに/dev/nullが削除されることがあります:))
ベストアンサー1
常に存在するがいつでも削除される可能性があるファイル(またはディレクトリ)を見つけようとするのではなく、変数を使用する前に明示的にチェックするのはどうですか?
[ -d "$OUTPUT_DIR" ] && rm -r -- "$OUTPUT_DIR"
空、存在しない、またはディレクトリ以外の項目を指している場合は、$OUTPUT_DIR
何も削除しようとしません。