我不是 bash 高手,所以请原谅这个问题的简单性。
我想在 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 $?
不起作用,要么!
最佳答案
&&
运算符仅在上一个命令成功时才执行下一个命令。请改用 ;
。
gcc -Wall -std=c99 program.c && (./a.out ; echo $?)
括号使 echo $?
在 gcc
失败时不会发生。
关于c - Bash 一个 liner 来编译、执行和回显返回值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15870338/