c - Bash 一个 liner 来编译、执行和回显返回值?

标签 c linux bash unix return-value

我不是 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/

相关文章:

c - Linux内核中嵌入锁的动态分配/释放结构

linux - Bash 脚本(Linux)

ruby-on-rails - VSCode 将调试 shell 更改为 Windows 上的 bash

python - 为 virtualenv 和 pip 维护不同的需求文件

c - 通过原始套接字传输以太网帧

regex - 如何在 bash 中使用变量进行 grep

c - 使用 VS Code 调试 C 子进程

c - 关于 flex/C 的两个简单问题

c - 如何从堆栈中删除质数

linux - Windows Linux Bash 运行时错误的变量名称/bin/sh -c "$(curl -fsS https://install.airshipcms.io)"