왜 $를 에코합니까? 1이 예상되는데 0을 반환합니까? [폐쇄]

왜 $를 에코합니까? 1이 예상되는데 0을 반환합니까? [폐쇄]

다음 프로그램의 경우 내 echo$는 0을 얻습니까? 1을 예상했지만.

int main()
{
    return 1;
}

답변1

프로그램은 예상대로 실행됩니다.

$ cat prog.c
int main()
{
    return 1;
}
$ cc prog.c
$ ./a.out
$ echo $?
1

프로그램 실행과 출력 출력 사이에 작업을 수행하면 사용한 명령의 종료 상태가 $?값을 덮어쓰게 됩니다. $?예를 들어,

$ ./a.out
$ echo "I ran the program"
I ran the program
$ echo $?
0

0종료 상태는 다음 과 같습니다 echo.

답변2

내 시스템에서 gnu g++를 사용하여 코드를 컴파일하면 echo $? 1. c, bash, python 등의 코드에 동일한 문제가 있습니까? 또한 $?는 마지막 명령의 반환에만 적용됩니다: $? 0입니다.

관련 정보