반응형
실패 할 때까지 쉘 명령을 반복해서 실행 하시겠습니까?
신뢰할 수없는 퍼지 테스트를 작성했습니다 . 디버그 코드를 추가했지만 이제는 실패 할 때까지 테스트를 실행하여 디버그 출력을 수집하려고합니다.
다음을 사용하여 테스트를 실행할 수 있도록 테스트를 설정했습니다.
./runtest
내 현재 해결책은 untilfail
스크립트 를 작성하는 것입니다 .
#!/bin/bash
$@
while [ $? -eq 0 ]; do
$@
done
그런 다음 사용하십시오.
untilfail ./runtest
더 간단한 해결책이 있습니까?
while
실행할 명령을 사용하므로 더 간단하게 사용할 수 있습니다.
while ./runtest; do :; done
이것은 0이 아닌 종료 코드 (일반적으로 실패를 나타냄)를 ./runtest
반환 할 때 루프를 중지합니다 .
현재 솔루션을 더 단순화하려면 다음과 같이 untilfail 스크립트를 변경해야합니다.
#!/bin/bash
while $@; do :; done
그런 다음 이미 사용중인 명령으로 호출 할 수 있습니다.
untilfail ./runTest --and val1,val2 -o option1
복잡한 파이프 라인을 쉘 스크립트 또는 함수로 감싸고 싶지 않으면 다음과 같이 작동합니다.
while true; do
curl -s "https:..." | grep "HasErrors.:true"
if [[ "$?" -ne 0 ]]; then
break
fi
sleep 120
done
이 경우 HTTP 요청은 항상 200을 반환하지만 오류가있는 경우 속성이 "HasErrors": true 인 일부 JSON도 반환합니다.
참고 URL : https://stackoverflow.com/questions/12967232/repeatedly-run-a-shell-command-until-it-fails
반응형
'programing tip' 카테고리의 다른 글
"유형화되지 않은"은 또한 학문적 CS 세계에서 "동적 유형화 된"을 의미합니까? (0) | 2020.05.30 |
---|---|
Arduino 코드를 단위 테스트하려면 어떻게해야합니까? (0) | 2020.05.30 |
JavaScript : 두 배열을 결합 / 결합하여 하나의 배열로 연결하는 방법은 무엇입니까? (0) | 2020.05.30 |
Java Enum-이름 대신 toString을 사용하는 이유 (0) | 2020.05.30 |
Oracle의 문자열 연결 연산자는 무엇입니까? (0) | 2020.05.30 |