Können Git-Bash und Cygwin-Shell unter Windows 10 dasselbe tun?
Was kann einer tun, der andere nicht?
Zum Beispiel,
- Können beide als Muscheln genauso funktionieren wie Bash?
Welche Programme und Befehle können in einem ausgeführt werden, aber nicht in dem anderen?
In git-bash kann ich beispielsweise keinen Windows-Befehl ausführen:
$ reg add "HKCU\Software\Microsoft\VisualStudio\14.0_Config\MSBuild" /v EnableOutOfProcBuild /t REG_DWORD /d 0 /f ERROR: Invalid syntax. Type "REG ADD /?" for usage.
Aber in Cygwin läuft es gut
$ reg add "HKCU\Software\Microsoft\VisualStudio\14.0_Config\MSBuild" /v EnableOutOfProcBuild /t REG_DWORD /d 0 /f The operation completed successfully.
ursprünglich dachte ich, dass git-bash und cygwin beide programme unter Windows ausführen können. Warum funktioniert Git-Bash nicht, während Cygwin es kann?
Vielen Dank.
Es gibt viele Überlappungen zwischen den beiden. Letztendlich handelt es sich jedoch um unterschiedliche Implementierungen von bash / should in Windows.
Cygwin verfügt über eine große Auswahl an optionaler Software, die Sie installieren können, einschließlich mehrerer verschiedener Programmiersprachen, Compiler, verschiedener Netzwerkwerkzeuge usw. Sie können auch X und viele X-Anwendungen installieren.
Mit git bash bekommen Sie, was Sie bekommen, und es ist etwas schwieriger, zusätzliche Tools zu installieren. Ich habe tatsächlich beide auf meiner Workstation, weil es Dinge gibt, die ich in Git Bash nicht tun kann. Ich hatte auch sehr gemischte Erfolge beim Aufrufen von Cygwin-Apps aus dem Git-Bash-Fenster.
Außerdem ist cygwin eine vollständige Posix-Umgebung, nicht nur ein Bash-Interpreter, sodass Sie häufig nicht verteilten Code darin kompilieren können. Wenn Sie beispielsweise die Quelle eines netten Linux-Tools gefunden haben, das Sie gefunden haben, können Sie dieses Tool normalerweise für kompilieren Cygwin. Nicht so sehr für Git Bash. Und wie ich oben angedeutet habe, wird es in Git Bash wahrscheinlich nicht funktionieren, selbst wenn Sie es für Cygwin kompilieren.
Davon abgesehen sind sie sich meist sehr ähnlich. Es ist schon komisch zu sehen, dass git bash den
cygpath
Befehl zum Konvertieren von Windows- und Posix-Dateipfaden enthält, da git bash afaik auf MinGW basiert, einer anderen Lösung als Cygwin.quelle
Ich habe gerade einen Unterschied festgestellt: Ich kann dieses Skript in Git Bash ausführen, aber nicht in Cygwin.
In Git Bash verarbeitet es meine XML-Dateien, aber in Cygwin gibt es mir Fehler:
bash --version
in Git Bash:in Cygwin:
quelle
ls
im aktuellen Verzeichnis mit dem Befehl anzeigen.find
Anführungszeichen auf diese Weise übergeben kann.) (2) Die Dateinamen sind tatsächlich * .XML (in Großbuchstaben) und die Shell-Optionnocaseglob
wird in der Git-Shell-Erstellung festgelegt Bei Globs wird die Groß- und Kleinschreibung nicht berücksichtigt (was unter Windows einen gewissen Sinn ergibt).