sh/Makefile에서 특정 오류 코드를 무시하고 싶습니다.
TL; DR
쉘 스크립트의 경우
# エラーコード 1 を無視
cmd.sh || exit $(($? - 1))
# 複数のエラーコードを無視したい場合 (下記は 1, 2 を無視)
cmd.sh || ( exit $(($? - 1)) ) || ( exit $(($? - 1)) )
Makefile의 경우
TARGET:
# エラーコード 1 を無視
cmd.sh || exit $$(($$? - 1))
# 複数のエラーコードを無視したい場合 (下記は 1, 2 を無視)
cmd.sh || ( exit $$(($$? - 1)) ) || ( exit $$(($$? - 1)) )
덧붙여 : 이쪽의 방법으로는 에러 코드를 바꾼다고 하는 거친 일을 하고 있습니다만, 에러 코드를 바꾸고 싶지 않은 경우의 방법, 코멘트 받았습니다. 좋으면 그쪽도 봐주세요.
소개
shell 스크립트나 Makefile 의 처리로, 「이 에러는 처리를 계속해 주었으면 합니다만」같은 것, 가끔 있어요.
sh라면
cmd.sh || true # エラーコードが常に 0 になる
Make 라고
TARGET:
# 頭の "-" で、エラーを無視するようになる
-cmd.sh
그렇다면 오류를 무시하지만 모든 오류가 무시됩니다. 그렇게 되면, 예상외의 에러 발생시에도 처리가 진행되어 버리므로, 가능하면 특정의 에러시만 무시하도록 하고 싶은 곳입니다.
거기서
# エラーコード 1 を無視
cmd.sh || exit $(($? - 1))
1
를 다른 숫자로 설정하면 원하는 오류 코드를 지정할 수 있습니다.
||
는 이전 명령이 오류 코드 1 이상으로 끝나면 뒤에 명령을 실행합니다.$?
로 직전의 커멘드의 에러 코드를 취해, $(( ))
로 계산을 할 수 있으므로, 1 을 당겨, 그것을 새로운 에러 코드로 하고 있습니다.
이제 오류 코드가 1
이면 새 오류 코드가 0
가되고 정상으로 간주되고 처리가 계속됩니다. 치수입니다.
Makefile도 기본적으로 동일합니다. 0
그렇지 않으면 sh 명령에 $$
가 전달되지 않으므로 그냥주의하십시오.
TARGET:
# エラーコード 1 を無視
cmd.sh || exit $$(($$? - 1))
응용 프로그램 : 여러 오류 코드를 무시하고 싶습니다.
복수의 에러 코드를 정상으로 하고 싶을 때도, 같은 것을 연결해 가면 OK,,,입니다만, 이대로라면 최초의 exit 로 처리가 끝나 버리므로 $
(와)과 서브 쉘로 해 봅시다. (덧붙여 sh 스크립트의 경우에, 뒤에 처리가 있는 경우도 ( )
로 와 줄 필요가 있습니다)
# 複数のエラーコードを無視したい場合 (下記は 1, 2 を無視)
cmd.sh || ( exit $(($? - 1)) ) || ( exit $(($? - 1)) )
또, 2 번째 이후의 ( )
에는, 지금까지의 계산이 반영된 값이 들어가므로, 거기에는 주의가 필요합니다. 위의 예에서 두 번째 $?
도 exit
하지만 이전에 이미 -1
빼서 첫 번째 오류 코드가 1
이면 여기에서 2
입니다.
cmd.sh || ( exit $(($? - 1)) ) || ( exit $(($? - 2)) )
그렇다면 오류 코드 0
및 1
를 무시합니다.
후기
비교적 자주 있는 필요한 생각이 듭니다만, 조금 구그라고 해도 페이지를 찾을 수 없었으므로, 써 보았습니다.
「더 좋은 방법이 있어!」라고 하는 분, 꼭 가르쳐 주시면 고맙습니다
Reference
이 문제에 관하여(sh/Makefile에서 특정 오류 코드를 무시하고 싶습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/smatsumt/items/1c599348c123a06458c8
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
# エラーコード 1 を無視
cmd.sh || exit $(($? - 1))
# 複数のエラーコードを無視したい場合 (下記は 1, 2 を無視)
cmd.sh || ( exit $(($? - 1)) ) || ( exit $(($? - 1)) )
TARGET:
# エラーコード 1 を無視
cmd.sh || exit $$(($$? - 1))
# 複数のエラーコードを無視したい場合 (下記は 1, 2 を無視)
cmd.sh || ( exit $$(($$? - 1)) ) || ( exit $$(($$? - 1)) )
shell 스크립트나 Makefile 의 처리로, 「이 에러는 처리를 계속해 주었으면 합니다만」같은 것, 가끔 있어요.
sh라면
cmd.sh || true # エラーコードが常に 0 になる
Make 라고
TARGET:
# 頭の "-" で、エラーを無視するようになる
-cmd.sh
그렇다면 오류를 무시하지만 모든 오류가 무시됩니다. 그렇게 되면, 예상외의 에러 발생시에도 처리가 진행되어 버리므로, 가능하면 특정의 에러시만 무시하도록 하고 싶은 곳입니다.
거기서
# エラーコード 1 を無視
cmd.sh || exit $(($? - 1))
1
를 다른 숫자로 설정하면 원하는 오류 코드를 지정할 수 있습니다.
||
는 이전 명령이 오류 코드 1 이상으로 끝나면 뒤에 명령을 실행합니다.$?
로 직전의 커멘드의 에러 코드를 취해, $(( ))
로 계산을 할 수 있으므로, 1 을 당겨, 그것을 새로운 에러 코드로 하고 있습니다.
이제 오류 코드가 1
이면 새 오류 코드가 0
가되고 정상으로 간주되고 처리가 계속됩니다. 치수입니다.
Makefile도 기본적으로 동일합니다. 0
그렇지 않으면 sh 명령에 $$
가 전달되지 않으므로 그냥주의하십시오.
TARGET:
# エラーコード 1 を無視
cmd.sh || exit $$(($$? - 1))
응용 프로그램 : 여러 오류 코드를 무시하고 싶습니다.
복수의 에러 코드를 정상으로 하고 싶을 때도, 같은 것을 연결해 가면 OK,,,입니다만, 이대로라면 최초의 exit 로 처리가 끝나 버리므로 $
(와)과 서브 쉘로 해 봅시다. (덧붙여 sh 스크립트의 경우에, 뒤에 처리가 있는 경우도 ( )
로 와 줄 필요가 있습니다)
# 複数のエラーコードを無視したい場合 (下記は 1, 2 を無視)
cmd.sh || ( exit $(($? - 1)) ) || ( exit $(($? - 1)) )
또, 2 번째 이후의 ( )
에는, 지금까지의 계산이 반영된 값이 들어가므로, 거기에는 주의가 필요합니다. 위의 예에서 두 번째 $?
도 exit
하지만 이전에 이미 -1
빼서 첫 번째 오류 코드가 1
이면 여기에서 2
입니다.
cmd.sh || ( exit $(($? - 1)) ) || ( exit $(($? - 2)) )
그렇다면 오류 코드 0
및 1
를 무시합니다.
후기
비교적 자주 있는 필요한 생각이 듭니다만, 조금 구그라고 해도 페이지를 찾을 수 없었으므로, 써 보았습니다.
「더 좋은 방법이 있어!」라고 하는 분, 꼭 가르쳐 주시면 고맙습니다
Reference
이 문제에 관하여(sh/Makefile에서 특정 오류 코드를 무시하고 싶습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/smatsumt/items/1c599348c123a06458c8
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
# エラーコード 1 を無視
cmd.sh || exit $(($? - 1))
TARGET:
# エラーコード 1 を無視
cmd.sh || exit $$(($$? - 1))
복수의 에러 코드를 정상으로 하고 싶을 때도, 같은 것을 연결해 가면 OK,,,입니다만, 이대로라면 최초의 exit 로 처리가 끝나 버리므로
$
(와)과 서브 쉘로 해 봅시다. (덧붙여 sh 스크립트의 경우에, 뒤에 처리가 있는 경우도 ( )
로 와 줄 필요가 있습니다)# 複数のエラーコードを無視したい場合 (下記は 1, 2 を無視)
cmd.sh || ( exit $(($? - 1)) ) || ( exit $(($? - 1)) )
또, 2 번째 이후의
( )
에는, 지금까지의 계산이 반영된 값이 들어가므로, 거기에는 주의가 필요합니다. 위의 예에서 두 번째 $?
도 exit
하지만 이전에 이미 -1
빼서 첫 번째 오류 코드가 1
이면 여기에서 2
입니다.cmd.sh || ( exit $(($? - 1)) ) || ( exit $(($? - 2)) )
그렇다면 오류 코드
0
및 1
를 무시합니다.후기
비교적 자주 있는 필요한 생각이 듭니다만, 조금 구그라고 해도 페이지를 찾을 수 없었으므로, 써 보았습니다.
「더 좋은 방법이 있어!」라고 하는 분, 꼭 가르쳐 주시면 고맙습니다
Reference
이 문제에 관하여(sh/Makefile에서 특정 오류 코드를 무시하고 싶습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/smatsumt/items/1c599348c123a06458c8
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(sh/Makefile에서 특정 오류 코드를 무시하고 싶습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/smatsumt/items/1c599348c123a06458c8텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)