확인 : 명령이 실패한 후 계속하는 방법?
명령 이 중지되는 $ 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
즉, 제거를 요구하지 않습니다. 파일이 존재하지 않으면 불평하지 마십시오.
한 줄에서 실제로 오류를 무시하게 ; true
하려면 반환 값을 0으로 설정하여 접미사 를 붙이면됩니다. 예를 들면 다음과 같습니다.
rm .lambda .lambda_t .activity .activity_t_lambda 2>/dev/null; true
그러면 stderr 출력이 null로 리디렉션되고 true로 명령을 따릅니다 (항상 0을 반환하여 make는 실제로 발생한 상황에 관계없이 명령이 성공했다고 믿게 함). 프로그램 흐름을 계속할 수 있습니다.
명령을 사용 rm
하여 파이프 뒤의 리턴 코드 를 차단하여 성공적으로 true
리턴 0
( 항상 리턴 (성공))
rm file | true
귀하의 불만 사항이 변경 되지 clean
않도록 변경하십시오 rm
.
clean:
rm -f .lambda .lambda_t .activity .activity_t_lambda
명령에 -f
옵션을 넣으십시오 rm
.
rm -f .lambda .lambda_t .activity .activity_t_lambda
참고 URL : https://stackoverflow.com/questions/2670130/make-how-to-continue-after-a-command-fails
'Programing' 카테고리의 다른 글
데이터베이스에 잠금을 배치 할 수 없으므로 ALTER DATABASE가 실패했습니다. (0) | 2020.07.08 |
---|---|
명령 프롬프트에서 .exe를 실행하기위한 Bat 파일 (0) | 2020.07.08 |
대 입문이 왜 값을 반환합니까? (0) | 2020.07.08 |
Vim 시작 시간 프로파일 링 (0) | 2020.07.08 |
Angular2에서 다른 구성 요소 함수를 호출하는 방법 (0) | 2020.07.08 |