1

私はバッシュの達人ではないので、この質問の単純な性質を許してください。

Linux シェルで、プログラムの戻り値を 1 行でコンパイル、実行、エコーしたいと考えています。何かのようなもの...

~$ gcc -Wall -std=c99 program.c && ./a.out && echo $?

これらはすべて個別に機能し、もちろんこれも機能します。

~$ gcc -Wall -std=c99 program.c && ./a.out
...
~$ echo $?
5
~$

どちらも機能しない./a.outため、いつ/成功したかを知ることが問題のようです!~$ ./a.out && echo $?

4

2 に答える 2

3

&&オペレーターは、前のコマンドが成功した場合にのみ、次のコマンドを実行します。;代わりに使用してください。

gcc -Wall -std=c99 program.c && (./a.out ; echo $?)

かっこは、失敗したecho $?場合に発生しないようにgccします。

于 2013-04-08T02:31:01.940 に答える
1
$ gcc -Wall -std=c99 program.c && ./a.out ; echo $?

やるべきです。セミコロンはコマンドを区切るだけなので、エコーは常に発生します

于 2013-04-08T02:31:12.887 に答える