1

Вопрос должен быть понятен из названия, но здесь идет.

Что лучше, или, есть ли лучшие варианты:

thing:
    rm -f a.file b.file
    doTheMake

thing:
    -rm a.file b.file
    doTheMake

Я хочу всегда удалять a.file и b.file перед doTheMake .

1 ответ1

2

Это зависит от вашего намерения. Без флага -f вы получите сообщение об ошибке и возвращаемое значение ошибки, если файл не существует. Make-файлы не продолжаются после ошибки (если вы не настроили их для этого). Если файл может существовать или не существовать, и вы хотите удалить его во всех случаях, -f - правильное поведение. Если файл должен существовать из-за более раннего шага в цепочке инструментов, и вы хотите удалить его на этом этапе (т. Е. Из-за того, что он не существует на данном этапе), не используйте -f .

Теперь, если вы ставите строку с префиксом - команда выполняется как обычно, но ее ошибки игнорируются и обработка продолжается.

Большинство команд не имеют флага -f , поэтому префикс - существует. Но rm делает. В этом случае, вы будете использовать - префикс против флага -f на основе того, хотите ли вы или нет ете жаловаться , что файл не существует. Это, вероятно, вопрос стиля и предпочтений в этой точке, но думать о своих намерениях, файл вы удаляете, и т.д. Я лично предпочитаю иметь Makefile без каких - либо - префиксы в любом месте , потому что я считаю их более рубить, и будет вместо этого используйте rm -f , но после этого объяснения это ваш вызов.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .