为什么使用 q(uit) 时“dc”命令退出(1)?

Ray*_*rth 11 dc exit-status

$ echo "$?"
0
$ echo 'q' | dc || echo "$?"
1
Run Code Online (Sandbox Code Playgroud)

为什么使用q退出dc被认为是错误?

(测试在Ubuntu 20.4上运行。)

don*_*sti 23

这似乎是dc代码中的一个错误,请转到第 817 行的底部dc/eval.c

reset_and_exit_quit:
reset_and_exit_fail:
    signal(SIGINT, sigint_default);
    return DC_FAIL;
reset_and_exit_success:
    signal(SIGINT, sigint_default);
    return DC_SUCCESS;
Run Code Online (Sandbox Code Playgroud)

标签reset_and_exit_quit应该出现在之后reset_and_exit_fail而不是之前...这解释了为什么用户Edgar Magallon 没有遇到这种行为,因为@Suse 的人实际上有一个补丁:正确的返回值在gnu-utils 邮件列表
上的快速搜索不会'不会返回与此问题相关的任何内容,因此如果有人有时间,请进行彻底的搜索,如果没有任何结果,请报告。