我不是一个狂欢的人,所以请原谅这个问题的简单性。
我想在Linux shell中的一行中编译,执行和回显我的程序的返回值。有点像...
~$ gcc -Wall -std=c99 program.c && ./a.out && echo $?
这些都是分开工作,这当然也有效:
~$ gcc -Wall -std=c99 program.c && ./a.out
...
~$ echo $?
5
~$
似乎问题是知道何时/ ./a.out
成功,因为~$ ./a.out && echo $?
不起作用!
答案 0 :(得分:3)
如果上一个命令成功,&&
运算符仅执行下一个命令。请改用;
。
gcc -Wall -std=c99 program.c && (./a.out ; echo $?)
如果echo $?
失败,则括号使gcc
不会发生。
答案 1 :(得分:1)
$ gcc -Wall -std=c99 program.c && ./a.out ; echo $?
应该这样做。分号只是分隔命令,所以回声总是会发生