One*_*ree 2 bash echo exit-code
假设我有这个简单的 C 程序,它向 shell 返回 4。
int main()
{
return 4;
}
Run Code Online (Sandbox Code Playgroud)
当我运行它,然后做echo $?,我会得到4,这是预期的
$ gcc foo.c && ./a.out
$ echo $?
4 <<<< expected
Run Code Online (Sandbox Code Playgroud)
但是当我执行以下操作时,我什么也没得到
$ gcc foo.c && ./a.out && echo $?
$ <<<< Nothing - WHY????
Run Code Online (Sandbox Code Playgroud)
&&仅当第一个参数成功时才运行第二个参数,即如果它以退出代码 0 结束。退出代码 4 表示 shell 的“失败”,因此echo不执行。尝试
gcc foo.c && ./a.out || echo $?
Run Code Online (Sandbox Code Playgroud)
如果您只想在不为零时查看退出代码。如果您想始终看到它,请使用
gcc foo.c && ./a.out ; echo $?
Run Code Online (Sandbox Code Playgroud)
请注意,gcc如果它不为零,它可以报告退出代码。
| 归档时间: |
|
| 查看次数: |
832 次 |
| 最近记录: |