2010-03-03 5 views
4

나는 매번 다른 인수로 프로그램을 여러 번 실행하는 cygwin이있는 Windows에서 쉘 스크립트를 실행하고 있습니다. 때로는 프로그램이 일부 입력 인수에 대해 세그먼트 화 오류를 생성합니다. 쉘 스크립트가 입력 중 어떤 것에 쓸 수있는 텍스트 파일을 생성하려고합니다. 프로그램이 실패했습니다. 기본적으로 프로그램을 실행할 때마다 반환 값을 확인하고 싶습니다. 여기에서는 프로그램이 실패 할 때 성공할 때와 다른 값을 반환한다고 가정합니다. 나는 이것에 관해 확실하지 않다. 실행 파일은 C++ 프로그램입니다.쉘 스크립트를 통해 C++ 실행 파일의 반환 값 확인

가능합니까? 안내해주십시오. 가능한 경우 셸 스크립트 용 코드 스 니펫을 제공하십시오.

또한 모든 값이 반환되는지 알려주십시오.

내 스크립트는 .sh 파일입니다.

답변

0

을 사용할 수 있습니다 박쥐 파일 인 경우 :

if program; then 
    echo Success 
else 
    echo Fail 
fi 

또는 할 목록을 사용하여 "및"또는 "또는"으로는 당신이 성공하거나 실패한 경우에만 추가 명령 : 프로그램이 성공 0 반환하는 경우 테스트는 C/C를 사용하는 경우 약간 반 직관적 인 성공할

program && echo Success 
program || echo Fail 

주 ++ 조건은 0이 아닌 값에 대해 계속됩니다.

3

마지막으로 완료된 프로그램의 반환 값은 환경 변수 $?에서 사용할 수 있습니다.

0

그것은 당신이 쉘의 if 명령을 사용하여 반환 값을 테스트 할 수 있습니다 %의 ERRORLEVEL %의

0

명령 줄 인수에 큰 공백이 없다고 가정 :

cat <<'EOF' | 
-V 
-h 
-: 
-a whatnot peezat 
! 

while read args 
do 
    if program $args 
    then : OK 
    else echo "!! FAIL !! ($?) $args" >> logfile 
    fi 
done 

이 소요 더욱 노력 (그것에 대해 예의를하는) 당신이 공간을 유지해야하는 경우지만. 글쎄, 조금 더 노력; 당신은 아마도 '프로그램'앞에 eval을 사용합니다.

관련 문제