Befehle in Bash, die von der Emacs-Shell unter Windows aufgerufen werden, können nicht ausgeführt werden

Befehle in Bash, die von der Emacs-Shell unter Windows aufgerufen werden, können nicht ausgeführt werden

Ich habe "Shell" aufgerufen, die cmd.exe korrekt ausführt und korrekt läuft.
Wenn ich jedoch bash aus dieser Shell ausführe, gibt jeder Befehl einen Fehler aus

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  

Der erste Befehl, den ich eingegeben habe, war ll. Aus der Fehlerausgabe können wir ersehen, dass zu meinem " ll" ein "\r" hinzugefügt wird.
Der zweite Befehl, den ich eingegeben habe, war ein einfaches ENTER. Aus der Fehlerausgabe können wir ersehen, dass zu meinem "ENTER" ein "\r" hinzugefügt wird.

außerhalb von Emacs: Wenn ich Bash von einer cmd.exe-Shell aus aufrufe, funktioniert alles wie erwartet.

Die Bash ist von Cygwin 64-Bit, falls das hilft, und ich verwende Windows 11 Professional. Der Emacs wurde für Windows Native (nicht Cygwin oder WSL) erstellt vonhttp://gnu.bardia.tech/gnu/emacs/windows/emacs-28/emacs-28.1-installer.exe.

Wie kann ich das beheben?

Antwort1

WahrscheinlichUrsache:
Dieses Terminal sendet CR+LF (" \r\n" Windows/DOS/...) am Zeilenende,
Bash erwartet nur LF (z. B. Linux-Konvention).

Versuchen Sie, Cygwin-Bash davon zu überzeugen, das herauszufiltern \r– ich kann nicht sagen, ob das möglich ist.

Andere Alternative: Lassen Sie Emacs ein „standardmäßigeres“ Terminal starten, z. B. rxvtvon Cygwin.

verwandte Informationen