Я добавил каждый из моих файлов конфигурации bash (~/.bashrc
, ~/.bash_profile
, ~/.profile
) с echo NAME_OF_FILE
, т.е. я получаю «.bashrc», когда исходный код находится в ~/.bashrc
.
Меня сбивает с толку то, почему я получаю и указывает, что ~/.bashrc включается, когда я запускаю команду через ssh. Например, если я сделаю:
ssh localhost echo hi
я получил
.bashrc
hi
Почему в этом контексте используется ~/.bashrc
? Разве это НЕ должно быть получено, поскольку это должно запустить неинтерактивный сеанс bash?
В самом деле, ssh localhost tty
дает мне «не tty» (ему предшествует «.bashrc», что указывает на то, что ~/.bashrc
получен, тем не менее).
Я grep
ped все мои файлы конфигурации для получения команд в ~/.bashrc
явно, и нет ни одного, который объясняет это.
(У меня есть только tty -s && shopt -q login_shell && [[ -r ~/.bashrc ]] && . ~/.bashrc
в моем .bash_profile
так что я получаю '.bashrc' даже в интерактивных оболочках входа в систему, но это не объясняет проблему ssh - я могу закомментировать ее, и я все еще получаю то же поведение с приведенными выше примерами ssh)
Как я могу отладить это?