我需要找到实现 false 的源代码。我在 github 上找到了来源并找到 false.c其中 false 以代码 255 退出。
那么,为什么“假; echo $?”在 shell 中返回 1 而不是 255?
我想我错过了某个地方的来源。
来自 false.c 的代码文件:
#pragma ident "%Z%%M% %I% %E% SMI"
#include <unistd.h>
/*
* Exit with a non-zero value as quickly as possible.
*/
int
main(void)
{
_exit(255);
/*NOTREACHED*/
return (0);
}
最佳答案
如果 bash 是你的 shell,false
是一个内置的——所以你正在查看错误的源代码。
请参阅 bash 本身内置的版本,in the file builtins/colon.def
:
/* Return an unsuccessful result. */
int
false_builtin (ignore)
char *ignore;
{
return (1);
}
如果您想使用操作系统供应商的版本 false
而不是内置的,你可以用 command false
来做到这一点或 /bin/false
.
关于bash - 如果错误的 Solaris 源以 255 退出,为什么 "false; echo $?"返回 1?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64649099/