![なぜ$をエコーするのですか? 1が予想されますが、0を返しますか? [閉鎖]](https://linux33.com/image/152446/%E3%81%AA%E3%81%9C%24%E3%82%92%E3%82%A8%E3%82%B3%E3%83%BC%E3%81%99%E3%82%8B%E3%81%AE%E3%81%A7%E3%81%99%E3%81%8B%EF%BC%9F%201%E3%81%8C%E4%BA%88%E6%83%B3%E3%81%95%E3%82%8C%E3%81%BE%E3%81%99%E3%81%8C%E3%80%810%E3%82%92%E8%BF%94%E3%81%97%E3%81%BE%E3%81%99%E3%81%8B%EF%BC%9F%20%5B%E9%96%89%E9%8E%96%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です。