なぜ$をエコーするのですか? 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です。

関連情報