bash(또는 readline인가요?)에서 설명할 수 없는 동작을 발견했습니다. Readline 명령을 호출 한 후 edit-and-execute-command
실행 전에 디버그 트랩 명령이 인쇄됩니다. 이것은 버그입니까?
기본 bash 설치를 사용하여 문제를 재현하는 방법은 다음과 같습니다(/etc에 도트 파일 외에는 도트 파일이 없으며 Linux, macOS 및 제가 찾을 수 있는 모든 bash 버전에서 발생합니다).
bash-5.0$ trap date DEBUG
bash-5.0$ echo hi
Fri May 1 23:07:38 PDT 2020
hi
bash-5.0$ echo hi
이 시점에서 Control-X Control-E를 입력하십시오. 편집기가 열립니다. 편집기를 종료합니다. 다음은 다음과 같습니다.
echo hi
date
Fri May 1 23:07:47 PDT 2020
hi
bash-5.0$ echo hi
date
내 질문은 편집기를 종료한 후 쉘이 인쇄되는 타당한 이유가 있는지 여부입니다.
이것이 나에게 문제가 되는 이유는 사용자가 명령을 입력한 후 iTerm2의 쉘 통합을 실행하기 전에 디버그 트랩을 사용하여 명령을 실행하기 때문입니다.https://github.com/rcaloras/bash-preexec. AFAIK bash에서는 이 작업을 수행할 수 있는 다른 방법이 없습니다. (비록 대안이 열려 있지만!)
문맥상 원래 여기에 나타났습니다.https://gitlab.com/gnachman/iterm2/-/issues/8808#note_331367916
답변1
나는 bash 소스 코드에서 거의 만족스러운 답을 찾을 만큼 운이 좋았습니다. 자세한 지침은 다음과 같습니다.https://gitlab.com/gnachman/iterm2/-/issues/8808#note_335276685