![왜 $를 에코합니까? 1이 예상되는데 0을 반환합니까? [폐쇄]](https://linux55.com/image/152446/%EC%99%9C%20%24%EB%A5%BC%20%EC%97%90%EC%BD%94%ED%95%A9%EB%8B%88%EA%B9%8C%3F%201%EC%9D%B4%20%EC%98%88%EC%83%81%EB%90%98%EB%8A%94%EB%8D%B0%200%EC%9D%84%20%EB%B0%98%ED%99%98%ED%95%A9%EB%8B%88%EA%B9%8C%3F%20%5B%ED%8F%90%EC%87%84%5D.png)
다음 프로그램의 경우 내 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입니다.