2017-10-18 3 views
0

안녕하세요 저는 셸 스크립팅에 익숙하며 특정 문구 "TEST_PASS"또는 "Test_Skip"또는 "Test_Failed"에 while loopgrep과 함께 터미널 명령을 사용하는 방법을 찾고 있습니다. "출력에.grep을 사용하여 쉘 출력에서 ​​문구를 찾습니다. While 루프

"TEST_PASS"문구가 터미널 출력에 있으면 루프가 종료됩니다.

else 구문 "Test_Skip"또는 "Test_Failed"가 출력에 있으면 명령을 다시 시도하십시오. 어떤 도움이 좋을 것

while ! #Command# | grep -i "TEST_PASS" 

:

는 나는 이런 식으로 뭔가를 갈 것이라고 생각했다.

감사합니다.

답변

2

어때요?

<your command goes here> | grep -q "TEST_PASS" 
retry=`echo $?` 
while [ $retry -ne 0 ] 
do 
    <your command goes here> | grep -q "TEST_PASS" 
    retry=`echo $?` 
done 
echo "Test Passed!" 
+1

나는 그것을 좋아하지만'yourcommand | grep -q 'TEST_PASS'' ?. 어느 쪽이든, 좋은 대답입니다. –

+0

감사합니다, @ DavidC.Rankin! 나는 스크립트에서 초보자이기도하고'-q' 옵션에 대해서도 몰랐다. 그냥 매뉴얼 페이지를 확인해 보면 편리 할 것이다. – mathB

+0

실제로'echo'는 필요 없다. 단지'retry = "$?"' –