명령 이 중지되는 $ make all
등의 오류를 제공 rm: cannot remove '.lambda': No such file or directory
합니다. rm-not-found-errors를 무시하고 싶습니다. 어떻게 강제로 만들 수 있습니까?
메이크 파일
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
답변
-i
깃발 (또는 --ignore-errors
)을 보십시오 . 이 문서 는 다음과 같은 방법으로 더 강력한 방법을 제안합니다.
명령 행에서 오류를 무시하려면
-
행 텍스트의 시작 부분 (초기 탭 뒤)에 a 를 쓰 십시오. 는-
명령이 실행 쉘에 전달되기 전에 삭제됩니다.예를 들어
clean: -rm -f *.o
이 원인
rm
은 파일을 제거 할 수없는 경우에도 계속.
모든 예제는와 함께 rm
있지만 오류를 무시해야하는 다른 명령 (예 :)에 적용 할 수 있습니다 mkdir
.
답변
make -k
(또는 --keep-going
gnumake에서) 당신이 요구하는 것을 할 것입니다.
실제로 실패한 델 또는 rm 라인을 찾아서 -f
그 에러가 다른 사람에게 발생하지 않도록 a 를 추가 해야합니다.
답변
깨끗하게 변경
rm -f .lambda .lambda_t .activity .activity_t_lambda
즉, 제거를 요구하지 않습니다. 파일이 존재하지 않으면 불평하지 마십시오.
답변
명령을 사용 rm
하여 파이프 뒤의 리턴 코드 를 차단하여 성공적으로 true
리턴 0
( 항상 리턴 (성공))
rm file | true
답변
한 줄에서 실제로 오류를 무시하게 ; true
하려면 반환 값을 0으로 설정하여 접미사 를 붙이면됩니다. 예를 들면 다음과 같습니다.
rm .lambda .lambda_t .activity .activity_t_lambda 2>/dev/null; true
그러면 stderr 출력이 null로 리디렉션되고 true로 명령을 따라갑니다 (항상 0을 반환하여 make는 실제로 발생한 상황에 관계없이 명령이 성공했다고 믿게 함). 프로그램 흐름을 계속할 수 있습니다.
답변
귀하의 불만 사항이 변경 되지 clean
않도록 변경하십시오 rm
.
clean:
rm -f .lambda .lambda_t .activity .activity_t_lambda
답변
명령에 -f
옵션을 넣으십시오 rm
.
rm -f .lambda .lambda_t .activity .activity_t_lambda