Сделайте: как продолжить после того, как команда перестала работать?

Команда $ make all дает ошибки такой как rm: cannot remove '.lambda': No such file or directory таким образом, это останавливается. Я хочу, чтобы это проигнорировало rm-not-found-errors. Как я могу вызвать - делают?

Make-файл

all:
        make clean
        make .lambda
        make .lambda_t
        make .activity
        make .activity_t_lambda
clean:
        rm .lambda .lambda_t .activity .activity_t_lambda

.lambda:
        awk '{printf "%.4f \n", log(2)/log(2.71828183)/$$1}' t_year > .lambda

.lambda_t:
        paste .lambda t_year > .lambda_t

.activity:
        awk '{printf "%.4f \n", $$1*2.71828183^(-$$1*$$2)}' .lambda_t > .activity

.activity_t_lambda:
        paste .activity t_year .lambda  | sed -e 's@\t@\t\&\t@g' -e 's@$$@\t\\\\@g' | tee > .activity_t_lambda > ../RESULTS/currentActivity.tex
126
задан Jonathan Leffler 16 September 2012 в 03:53
поделиться

5 ответов

Попробуйте установить флаг -i (или - ignore-errors ). Документация , кажется, предлагает более надежный способ достижения этого, кстати:

Чтобы игнорировать ошибки в командной строке, напишите - в начале текста строки (после начальной вкладки). - отбрасывается до того, как команда передается в оболочку для выполнения.

Например,

 clean: 
 -rm -f * .o 
 

Это заставляет rm продолжить, даже если он не может удалить файл.

Все примеры относятся к rm , но применимы к любой другой команде, из которой вам нужно игнорировать ошибки (например, mkdir ).

230
ответ дан 24 November 2019 в 00:51
поделиться

Поместите параметр -f в команду rm .

rm -f .lambda .lambda_t .activity .activity_t_lambda
0
ответ дан 24 November 2019 в 00:51
поделиться

Измените свой чистый , чтобы rm не жаловался:

clean:
    rm -f .lambda .lambda_t .activity .activity_t_lambda
2
ответ дан 24 November 2019 в 00:51
поделиться

Изменить очистку на

rm -f .lambda .lambda_t .activity .activity_t_lambda

Т.е. не запрашивать удаление; не жалуйтесь, если файл не существует.

19
ответ дан 24 November 2019 в 00:51
поделиться

make -k (или - keep-going в gnumake), я думаю, сделает то, о чем вы просите.

Вы действительно должны найти строку del или rm, которая дает сбой, и добавить к ней -f , чтобы эта ошибка не повторилась другим.

30
ответ дан 24 November 2019 в 00:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: