GVim не является источником .bashrc, .bash_profile или .profile из неинтерактивной оболочки без входа

У меня есть следующее на моем .vimrc

set shell=C:/cygwin/bin/bash set shellcmdflag=-c set shellxquote=\" 

Таким образом, оболочка, которую я использую, не является интерактивной и недействительной. Я думал, что исходные файлы без входа в систему .bashrc, но это, похоже, не так. Я не хочу, чтобы моя оболочка была interactive или login . Есть ли способ для меня источник .bashrc другим способом? Мой .bash_profile уже содержит .bashrc

То, что вы описываете, – это нормальное поведение. Запуск bash с опцией -c запустит неинтерактивную оболочку без входа . Это означает, что bash не будет $BASH_ENV ни один из его классических файлов конфигурации, кроме переменной $BASH_ENV . Как объясняется на странице bash man:

  • Неинтерактивная оболочка без входа:

    Когда bash запускается неинтерактивно, для запуска сценария оболочки, например, он ищет переменную BASH_ENV в среде, расширяет ее значение, если она появляется там, и использует расширенное значение в качестве имени файла для чтения и выполнения , Bash ведет себя так, как если бы выполнялась следующая команда:

     if [ -n "$BASH_ENV" ]; then . "$BASH_ENV"; fi 
  • Интерактивная оболочка входа:

    Когда bash вызывается как интерактивная оболочка входа или как неинтерактивная оболочка с параметром –login, она сначала считывает и выполняет команды из файла / etc / profile , если этот файл существует. После прочтения этого файла он ищет ~ / .bash_profile , ~ / .bash_login и ~ / .profile в этом порядке и считывает и выполняет команды из первого, который существует и доступен для чтения.

  • Интерактивная оболочка без входа

    Когда запущена интерактивная оболочка, которая не является оболочкой входа, bash считывает и выполняет команды из /etc/bash.bashrc и ~ / .bashrc , если эти файлы существуют. Это может быть заблокировано с помощью параметра –norc. Параметр файла -rcfile заставит bash читать и выполнять команды из файла вместо /etc/bash.bashrc и ~ / .bashrc.


Итак, если вы хотите, чтобы ваша неинтерактивная оболочка без входа в исходный код ~/.bahsrc , вам нужно установить значение BASH_ENV в ~/.bashrc . Добавьте эту строку в файлы ~/.bashrc или ~/.profile :

 export BASH_ENV=~/.bashrc 
  • VBA Shell и подождите с кодом выхода
  • Как я могу присвоить команду sudo?
  • Scp между двумя удаленными хостами от моего (третьего) компьютера
  • '\ r': команда не найдена - .bashrc / .bash_profile
  • Понимание команды через оболочку adb и через код - Android
  • Как использовать оболочку ADB при подключении нескольких устройств? Ошибка с «ошибкой: более одного устройства и эмулятора»
  • Проверьте, выводит ли команда пустую строку
  • '\ r': команда не найдена
  • Дилемма подошвы в теперешнем цикле в Баше
  • Перенаправление / сохранение вывода оболочки в переменную GDB?
  • Очистить stdin перед чтением
  • Interesting Posts

    Невозможно активировать .net 3.5 в Windows 8. Невозможно активировать с панели управления и никогда не получить установочный компакт-диск или iso с моим компьютером для использования DISM с

    Удалить будильник из AlarmManager с помощью функции cancel () – Android

    Является ли реализация Meyers streamом шаблонов Singleton безопасным?

    Как форматировать ячейки Excel для отображения продолжительности в годах и в месяцах?

    Узнайте, завершил ли childEventListener Firebase загрузку всех данных

    Как загрузить файлы Dropbox с помощью команды wget?

    Как я могу искать в выходном буфере оболочки tmux?

    Android: обновление версии БД и добавление новой таблицы

    Windows: Как удалить ACL файла и просто наследовать ACL в содержащем каталоге?

    Передача строки из одного действия в другую активность на Android

    android: windowSoftInputMode = “adjustResize” не имеет никакого значения?

    Как я могу отключить 3G / Data программно на Android?

    Как использовать XPath с XElement или LINQ?

    Что такое монада?

    Скользящая стрелка CSS

    Давайте будем гением компьютера.