2014-09-15 2 views
1

bash 스크립트에서 리턴 값이 127보다 클 때까지 명령을 실행해야합니다.리턴 코드가 x보다 큰 문자까지 명령을 실행하십시오.

지금은 출력이있는 서브 쉘에서 명령을 실행하고 있습니다./dev/null에 입력하고 리턴 코드를 출력하여 테스트와 비교할 수 있습니다.

while [ `command >/dev/null 2>&1; echo $?` -lt 128 ]; do sleep 1; done 

eleganter 솔루션이 있습니까? 기본적으로 지원되는 유스 케이스는 RC == 0인지 테스트하는 것입니다.

답변

4

가 나는 종료 코드는 내가 아이디어를 좋아하지 127보다 큰

while true; do 
    command # redirection is now optional 
    [ $? -gt 127 ] && break 
    sleep 1 
done 
+1

때 무한 루프를 시작하고 휴식을 더 우아한 것 같아요. 광산처럼 익숙하지 않아서/dev/null로 리디렉션 할 필요가 없습니다. 감사! –

관련 문제