После траления в Google, на странице руководства по bash и других вопросах здесь, в SO, я обнаружил похожие сообщения, но мне не удалось определить причину этой конкретной проблемы.
Я установил git-prompt.sh локально,Все хорошо в оболочке bash --login.Это действительно хорошо как для Windows, так и для Linux.
Однако, как только я запускаю оболочку bash (например, чтобы я мог временно изменить свою среду и т. Д.), Я получаю сообщение об ошибке:
$ ... <in/out of repos and all good>
$ bash
bash: __git_ps1: command not found
Эта проблема не возникает в Windows.
Что-то, на что нужно обратить внимание, это то, что у меня есть мои точечные файлы через git.По этой причине я могу запустить свою конфигурацию как в Windows, так и в Linux, и у них обоих одинаковый файл git-prompt.sh.
- Windows 10 git == 2.19.2.windows.1 bash == 4.4.19 (2) -релиз
- Arch Linux git == 2.19.2 bash == 4.4.23 (1) -релиз
Обе являются свежими версиями ОС.
Моя лучшая догадка на данный момент заключается в том, что различные семантики взаимодействия с оболочкой выполняются при работе под windows, а не под linux.Я экспериментировал с различными вызовами bash (--login, --norc, т. Е. Я могу установить вещи вручную) и т. Д. Для этого подозрения есть 3 причины:
- Эта ошибка выглядит как вид ошибки, которую мы получаем, когда забываем экспортировать переменную / параметр.
- Оба источника "/etc/profile.d" различны для каждой платформы.Некоторые содержат поддержку git, и, возможно, это способствует предыдущей причине.
- Мой bash-fu был хорош ~ 10 + лет назад, теперь я ржавый.
Одна вещь, которую яточно знаю, что первая оболочка bash для входа в систему («sub») отлично работает на обеих платформах.
Есть идеи, отзывы или указатели?
Спасибо,
Мэтт