Windows의 emacs 셸에서 호출된 bash에서 명령을 실행할 수 없습니다.

Windows의 emacs 셸에서 호출된 bash에서 명령을 실행할 수 없습니다.

cmd.exe를 올바르게 실행하고 올바르게 실행하는 "셸"을 호출했습니다.
그러나 해당 셸 내에서 bash를 실행하면 모든 명령에서 오류가 발생합니다.

Microsoft Windows [Version 10.0.22000.739] (c) Microsoft Corporation.  
All rights reserved.  

c:\tools\Emacs\emacs-28.1>bash  
bash  
ll  
bash: line 1: $'ll\r': command not found  

bash: line 2: $'\r': command not found  

내가 입력한 첫 번째 명령은 ll. 오류 출력에서 ​​"\r"이 내 " ll"에 추가되는 것을 볼 수 있습니다.
내가 입력한 두 번째 명령은 간단한 ENTER였습니다. 오류 출력에서 ​​"ENTER"에 "\r"이 추가되는 것을 볼 수 있습니다.

emacs 외부: cmd.exe 셸에서 bash를 호출하면 모든 것이 예상대로 작동합니다.

bash는 cygwin 64비트에서 가져온 것입니다. 도움이 된다면 Windows 11 Professional을 사용하고 있습니다. emacs는 cygwin이나 WSL이 아닌 Windows 네이티브용으로 제작되었습니다.http://gnu.bardia.tech/gnu/emacs/windows/emacs-28/emacs-28.1-installer.exe.

이 문제를 어떻게 해결해야 합니까?

답변1

유망한 후보자원인:
해당 터미널은 \r\n줄 끝에서 CR+LF(" " Windows/DOS/...) 를 보내고
Bash는 LF만 예상합니다(예: Linux 규칙).

Cygwin-Bash가 해당 항목을 필터링하도록 설득할 수 있는지 확인하십시오 \r. 가능한지 여부는 알 수 없습니다.

다른 대안; emacs가 좀 더 "표준적인" 터미널을 실행하도록 만듭니다. 예를 들어 rxvtCygwin에서.

관련 정보