git-bash $ PATH не может проанализировать каталог Windows с пробелом

#windows #git #path #git-shell

#Windows #git #путь #git-shell

Вопрос:

Я хотел бы использовать git-bash, поставляемый с клиентом github, на компьютере с Windows 7 (32-разрядный). Каким-то образом git-bash уже изучил $PATH переменные из системы Windows PATH . Однако я обнаружил, что $PATH в git-bash неправильно проанализирован системный ПУТЬ win с пробелом.

например, $PATH выводит:

«…./ c /Program: нет такого файла или каталога»

Есть ли способ это исправить? где находится скрипт git-bash для создания $PATH оболочки для git? Спасибо

Ответ №1:

Почему бы не использовать абсолютный path вместо относительного path , и если папка с именем файла содержит пробел, просто используйте "" (кавычки).

Пример. cd C:/Users/"My Folder"

Комментарии:

1. У меня это не сработало. Но /c/Users/My Folder/ сделал.

Ответ №2:

Поставьте обратную косую черту (« «) перед пробелом.

пример. cd My Documents

Ответ №3:

У меня аналогичная проблема.
После некоторой борьбы я поместил это в первую строку в моем C:Program FilesGitetcprofile :

export HOME=`cygpath -u «`cygpath -d «$HOMEDRIVE $HOMEPATH»`»`

и команда типа echo $HOME в bash выйдет /c/Users/NAMEXX~1 , больше никаких проблем с разбором пробела для моего $HOME или ~/ !

Ответ №4:

Ответ для меня был близок к ответу Seagal82. Я добавил следующую строку в начале [PATH_TO_GITBASH_INSTALL]etcprofile :

 export HOME="/c/Users/Username with spaces/"
  

Затем я запустил новое окно git bash, и все пути в $PATH using $HOME были заменены пробелом с защитой от сокращения и работают корректно.

Ответ №5:

git-bash выполняется в Linux среде. Поскольку linux не распознает backslash путь к своему каталогу, вам нужно использовать / forwardslash . Используйте "" , если ваш путь к каталогу содержит пробелы.

Ответ №6:

В основном, чтобы подтвердить, что работает: для переменных среды используйте ключевое слово export:

 export JAVA_HOME="/c/Program Files/Java/jdkxxxxx"
  

то же самое для переменной PATH и т.д.

Вы можете поместить его в свой ~/.bashrc . Тогда используйте переменные вместо прямой строки с пробелами

Ответ №7:

Используйте команду bash declare —

 $ declare -x PATH="/path with spaces":$PATH
  

Ответ №8:

Вам нужно экранировать символы, не являющиеся словом, обратной косой чертой «»:

Например:

 $ cd Program Files (x86)
  

Ответ №9:

Не делайте этого, вы можете попробовать это вместо того, чтобы передать полный путь в "" (кавычки). Пример $ cd "C:UsersfolderOneDrive - folderfile"

Ответ №10:

Я пришел к пониманию, особенно если в «настройке» оболочки ОС Windows Git Bash , возможность использовать «короткие имена», т. Е. информацию об имени папки, которую вы получаете при запуске dir /X в каталоге, а затем использовать это, например, для Program Files этого было бы PROGRA~1 (который больше не содержит пробелов). Затем используйте это короткое имя в путях или аналогичных определениях в .bashrc (или похожих) файлах.
В качестве дополнительной информации [здесь] Program Files (x86) короткое имя будет PROGRA~2
Недавно я обнаружил, что это наиболее стабильное решение для экспорта переменной в Git Bash ‘s .bash_profile