q(uit)를 사용할 때 "dc" 명령이 (1) 종료되는 이유는 무엇입니까?

q(uit)를 사용할 때 "dc" 명령이 (1) 종료되는 이유는 무엇입니까?
$ echo "$?"
0
$ echo 'q' | dc || echo "$?"
1

q종료 사용이 dc오류로 간주되는 이유는 무엇입니까?

(우분투 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 메일링 리스트해당 문제와 관련된 내용은 일체 반환되지 않으니 시간 되시는 분들은 꼼꼼히 검색해 보시고, 안나오시면 신고 부탁드립니다.

관련 정보