デプロイスクリプトの 1 行。指摘として正しいものは?
rm -rf $BUILD_DIR/正答
- -rf は -fr の順で書かないと再帰削除にならないので、順序を入れ替える
- 末尾に / があるので、ディレクトリ自体は残り中身だけが消えて安全である
- BUILD_DIR が空だと
rm -rf /になる。"${BUILD_DIR:?}" で止める - シェルは大文字の変数名を展開しないので、小文字の build_dir に変えないと何も消えない
解説
BUILD_DIR が未設定や空のとき、$BUILD_DIR/ は / に展開され、ルート以下の削除を試みる。"${BUILD_DIR:?}" と書くと、空や未定義ならエラーで止まり rm は実行されない。あわせてダブルクォートで囲むと、空白を含むパスで分割されるのも防げる。オプションの順序は -rf でも -fr でも同じなので 1 番目は誤り。
参考: www.gnu.org
この問題を含む 指摘・レビュー のテストを制限時間つきで解く
指摘・レビュークイズへ