En Windows 10, ¿pueden git-bash y cygwin shell hacer lo mismo?
¿Qué puede hacer uno pero el otro no?
Por ejemplo,
- Como proyectiles, ¿pueden ambos funcionar igual que bash?
¿Qué programas y comandos pueden ejecutarse en uno pero no en el otro?
Por ejemplo, en git-bash, no puedo ejecutar algún comando de 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.
Pero en Cygwin, funciona bien
$ reg add "HKCU\Software\Microsoft\VisualStudio\14.0_Config\MSBuild" /v EnableOutOfProcBuild /t REG_DWORD /d 0 /f The operation completed successfully.
originalmente pensé que git-bash y cygwin pueden ejecutar programas en Windows. Entonces, ¿por qué no funciona git-bash, mientras que cygwin sí?
Gracias.
Hay mucha superposición entre los dos. Pero en última instancia, son implementaciones diferentes de bash / should en Windows.
Cygwin tiene una gran cantidad de software opcional que puede instalar, incluidos múltiples lenguajes de programación diferentes, compiladores, diversas herramientas de red, etc. También puede instalar X y muchas aplicaciones X.
Con git bash, obtienes lo que obtienes, y es un poco más difícil instalar herramientas adicionales. De hecho, tengo ambos en mi estación de trabajo, porque hay cosas que no puedo hacer en git bash. También he tenido un éxito muy variado llamando a aplicaciones cygwin desde la ventana de git bash.
Además, cygwin es un entorno posix completo, no solo un intérprete de bash, por lo que a menudo puede compilar código no distribuido dentro de él, por ejemplo, si encuentra la fuente de una buena herramienta de Linux que encontró, generalmente puede compilar esa herramienta para Cygwin No tanto por git bash. Y como mencioné anteriormente, incluso si lo compila para Cygwin probablemente no funcionará en git bash.
Aparte de eso, en su mayoría son muy similares. Es divertido ver que git bash incluye el
cygpath
comando para convertir rutas de archivos de Windows y Posix, porque git bash afaik se basa en MinGW, que es una solución distinta de Cygwin.fuente
Acabo de encontrar una diferencia: puedo ejecutar este script en Git bash pero no en Cygwin.
En Git bash, procesa mis archivos xml, pero en Cygwin, me da un error:
bash --version
en Git bash:en Cygwin:
fuente
ls
en el directorio actual con el comando.find
esa manera sin comillas). (2) Los nombres de los archivos son en realidad * .XML (en mayúsculas) y la opción de shellnocaseglob
se establece en la configuración de shell git Globs no distingue entre mayúsculas y minúsculas (lo que tiene cierto sentido en Windows).