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

为什么使用 q(uit) 时“dc”命令退出(1)?
$ echo "$?"
0
$ echo 'q' | dc || echo "$?"
1

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

(测试在Ubuntu 20.4上运行。)

答案1

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

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;

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

相关内容