Почему по умолчанию .bashrc установлен для немедленного возврата, если не работает в интерактивном режиме?

В Ubuntu по умолчанию .bashrc есть это:

# If not running interactively, don't do anything
[ -z "$PS1" ] && return

Кто-нибудь знает, почему это там? Есть ли что-то плохое в bashrc, если оболочка запускается неинтерактивно?

7
задан 13.04.2020, 15:33

1 ответ

Смысл файла .bashrc в том, что он устанавливает оболочку так, чтобы она была более удобной для интерактивных пользователей. Полезные псевдонимы, красивые цвета, полезные подсказки, общие переменные среды и тому подобное.

И некоторые из этих удобств могут нарушать неинтерактивные сценарии. Например:

`alias rm='rm -i'`

не будет работать не в интерактивном режиме (спасибо zwets).

0
ответ дан 13.04.2020, 15:34
  • 1
    Хорошо, я мог, конечно, сделать bash -c "source ~/.bashrc", тогда это получено:-), – M-M 13.04.2020, 15:34
  • 2
    Что я don' t понимают: Если удар не запускается как интерактивная оболочка, то .bashrc isn' t чтение, так или иначе, не так ли? Я поместил строку echo ".bashrc is being sourced" в мой .bashrc перед [ -z "$PS1" ] && return и затем работал bash -c "echo" и, не показывает... – eipi10 13.04.2020, 15:35

Теги

Похожие вопросы