В Windows 10 могут ли git-bash и cygwin shell делать одно и то же?
Что один может сделать, а другой нет?
Например,
- Как оболочки, могут ли они работать так же, как Bash?
Какие программы и команды могут выполняться в одной, но не в другой?
Например, в git-bash я не могу запустить какую-то команду 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.
Но в Cygwin он работает хорошо
$ reg add "HKCU\Software\Microsoft\VisualStudio\14.0_Config\MSBuild" /v EnableOutOfProcBuild /t REG_DWORD /d 0 /f The operation completed successfully.
Первоначально я думал, что git-bash и cygwin могут запускать программы в Windows. Так почему же не работает git-bash, а Cygwin -?
Спасибо.
Между ними много общего. Но в конечном итоге это разные реализации bash / must в Windows.
Cygwin имеет большое количество дополнительного программного обеспечения, которое вы можете установить, включая несколько разных языков программирования, компиляторы, различные сетевые инструменты и так далее. Вы также можете установить X и многие X-приложения.
С git bash вы получаете то, что получаете, и немного сложнее установить дополнительные инструменты. На самом деле у меня есть оба на моей рабочей станции, потому что есть вещи, которые я не могу сделать в git bash. У меня был очень смешанный успех, вызывая приложения cygwin из окна git bash.
Кроме того, cygwin - это полноценная posix-среда, а не просто интерпретатор bash, поэтому вы часто можете скомпилировать внутри нее нераспределенный код, поэтому, например, если вы нашли источник интересного инструмента Linux, который вы нашли, вы обычно можете скомпилировать этот инструмент для Cygwin. Не так много для мерзавца. И, как я упоминал выше, даже если вы скомпилируете его для Cygwin, он, скорее всего, не будет работать в git bash.
Кроме этого они в основном очень похожи. Довольно забавно видеть, что в git bash есть
cygpath
команда для преобразования путей к файлам Windows и Posix, потому что git bash afaik основан на MinGW, отличном от Cygwin.источник
Я просто нашел разницу: я могу запустить этот скрипт в Git Bash, но не в Cygwin.
В Git bash он обрабатывает мои xml-файлы, но в Cygwin выдает ошибку:
bash --version
в Git Bash:в Cygwin:
источник
ls
в текущем каталоге с помощью команды.find
таким образом без кавычек.) (2) Имена файлов на самом деле * .XML (в заглавных буквах), и опция оболочкиnocaseglob
установлена в git shell, делая Глобус нечувствителен к регистру (что имеет определенный смысл в Windows).