El comando $ make allda errores como rm: cannot remove '.lambda': No such file or directorypara que se detenga. Quiero que ignore los errores rm-not-found-errors. ¿Cómo puedo forzar la fabricación?
Makefile
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

rm -fes mejor para el problema específico que tiene el usuario, pero aún así es bueno saber acerca de la solución general, incluso si a veces es insegura.$(RM), que puedes usar en lugar derm -f.make -k(o--keep-goingen gnumake) hará lo que está pidiendo, creo.Realmente debería encontrar la línea del o rm que está fallando y agregarle una
-fpara evitar que ese error ocurra a otros.fuente
makeconstruir tantas unidades de compilación como sea posible mientras arreglas lo que el compilador se atragantó. De esa manera, cuando haya arreglado lo que estaba roto, no tiene que esperar a que todo lo demás se construya también.Cambiar limpio a
Es decir, no solicitar la eliminación; No te quejes si el archivo no existe.
fuente
Regrese con éxito bloqueando
rmel código de retorno detrás de una tubería con eltruecomando, que siempre regresa0(éxito)fuente
Para hacer que realmente ignore los errores en una sola línea, simplemente puede agregarle un sufijo
; true, estableciendo el valor de retorno en 0. Por ejemplo:Esto redirigirá la salida de stderr a nulo y seguirá el comando con verdadero (que siempre devuelve 0, lo que hace creer que el comando tuvo éxito independientemente de lo que realmente sucedió), permitiendo que el flujo del programa continúe.
fuente
Cambia tu
cleanasírmno te quejarás:fuente
Pon una
-fopción en turmcomando.fuente