В Ubuntu по умолчанию .bashrc есть это:
# If not running interactively, don't do anything
[ -z "$PS1" ] && return
Кто-нибудь знает, почему это там? Есть ли что-то плохое в bashrc, если оболочка запускается неинтерактивно?
Смысл файла .bashrc в том, что он устанавливает оболочку так, чтобы она была более удобной для интерактивных пользователей. Полезные псевдонимы, красивые цвета, полезные подсказки, общие переменные среды и тому подобное.
И некоторые из этих удобств могут нарушать неинтерактивные сценарии. Например:
`alias rm='rm -i'`
не будет работать не в интерактивном режиме (спасибо zwets).