El comando $ make all
da errores como rm: cannot remove '.lambda': No such file or directory
para 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 -f
es 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-going
en gnumake) hará lo que está pidiendo, creo.Realmente debería encontrar la línea del o rm que está fallando y agregarle una
-f
para evitar que ese error ocurra a otros.fuente
make
construir 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
rm
el código de retorno detrás de una tubería con eltrue
comando, 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
clean
asírm
no te quejarás:fuente
Pon una
-f
opción en turm
comando.fuente