Sous Windows 10, git-bash et cygwin shell peuvent-ils faire les mêmes choses?
Que peut-on faire mais pas l'autre?
Par exemple,
- En tant qu'obus, peuvent-ils tous les deux fonctionner de la même manière que bash?
Quels programmes et commandes peuvent s'exécuter dans l'un mais pas dans l'autre?
Par exemple, dans git-bash, je ne peux pas exécuter de commande Windows:
$ 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.
Mais à Cygwin, ça fonctionne bien
$ reg add "HKCU\Software\Microsoft\VisualStudio\14.0_Config\MSBuild" /v EnableOutOfProcBuild /t REG_DWORD /d 0 /f The operation completed successfully.
à l'origine, je pensais que git-bash et cygwin peuvent tous deux exécuter des programmes sous Windows. Alors pourquoi git-bash ne fonctionne-t-il pas alors que cygwin le peut?
Merci.
Il y a beaucoup de chevauchement entre les deux. Mais finalement, ce sont des implémentations différentes de bash / shall dans Windows.
Cygwin propose un grand nombre de logiciels optionnels que vous pouvez installer, notamment plusieurs langages de programmation différents, des compilateurs, divers outils réseau, etc. Vous pouvez également installer X et de nombreuses applications X.
Avec git bash, vous obtenez ce que vous obtenez, et il est un peu plus difficile d'installer des outils supplémentaires. En fait, j'ai les deux sur mon poste de travail, car il y a des choses que je ne peux pas faire dans git bash. J'ai également eu un succès mitigé en appelant des applications cygwin à partir de la fenêtre git bash.
En outre, cygwin est un environnement posix complet, pas seulement un interpréteur bash, vous pouvez donc souvent compiler du code non distribué, donc par exemple si vous avez trouvé la source d'un bel outil Linux que vous avez trouvé, vous pouvez généralement compiler cet outil pour Cygwin. Pas tant pour git bash. Et comme je l'ai mentionné ci-dessus, même si vous le compilez pour Cygwin, cela ne fonctionnera probablement pas dans git bash.
A part cela, ils sont pour la plupart très similaires. C'est
cygpath
assez drôle de voir que git bash inclut la commande pour convertir les chemins de fichiers Windows et Posix, car git bash afaik est basé sur MinGW, qui est une solution distincte de Cygwin.la source
Je viens de trouver une différence: je peux exécuter ce script dans Git bash mais pas dans Cygwin.
Dans Git bash, il traite mes fichiers xml, mais dans Cygwin, il me donne une erreur:
bash --version
dans Git bash:à Cygwin:
la source
ls
dans le répertoire courant avec la commande.find
rende compte que l'on peut passer des modèles de cette façon sans guillemets.) (2) Les noms des fichiers sont en fait * .XML (en majuscules) et l'option shellnocaseglob
est définie dans la création de shell git insensible à la casse globs (ce qui a un certain sens sous Windows).