Git Bash - строковый параметр с символом / при запуске расширяется до пути к файлу. Как это остановить? - PullRequest
0 голосов
/ 18 января 2019

Ранее сегодня я пытался сгенерировать сертификат с записью DNSName в расширении SubjectAltName:

$ openssl req -new -subj "/ C = GB / CN = foo" -addext "subjectAltName = DNS: foo.co.uk" -addext "certificatePolicies = 1.2.3.4" -key ./private-key. pem -out ~ / req.pem

Эта команда привела к следующему сообщению об ошибке:

имя должно быть в формате / type0 = value0 / type1 = value1 / type2 = ... где символы могут быть экранированы. Это имя не в этом формате: «C: / Program Files / Git / C = GB / CN = foo» проблемы с оформлением сертификата

Как я могу помешать Git Bash обработать этот строковый параметр как путь к файлу или, по крайней мере, остановить это изменение?

1 Ответ

0 голосов
/ 28 февраля 2019

В примечаниях к выпуску Git Bash 2.21.0, упомянутых сегодня, упоминается это как известная проблема. К счастью, они также описали два решения проблемы:

Если вы укажете параметры командной строки, начинающиеся с косой черты, при преобразовании пути из POSIX в Windows начнется преобразование, например. «/usr/bin/bash.exe» в «C: \ Program Files \ Git \ usr \ bin \ bash.exe». Когда это нежелательно - например, «--upload-pack = / opt / git / bin / git-upload-pack» или «-L / regex /» - вам необходимо временно установить переменную окружения MSYS_NO_PATHCONV, например:

MSYS_NO_PATHCONV = 1 мерзавец -L / pathconv / msys2_path_conv.cc

В качестве альтернативы вы можете удвоить первую косую черту, чтобы избежать преобразования пути из POSIX в Windows, например «//usr/bin/bash.exe".

...