1

Насколько я понимаю, .bash_profile всегда будет вызываться через SSH-логин.

Однако я не вижу включенных различных настроек, пока не сделаю следующее:

ssh $host "source ~/.bash_profile ; echo $PATH "

.:/mnt/spark-1.4.1/bin:/mnt/spark-1.4.1/sbin:/mnt/scala-2.11.2/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

Когда я просто делаю:

ssh $host "echo $PATH "

Информация о PATH используется по умолчанию

 /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

Пользователь - root, а оболочкой по умолчанию является bash.

$ ll /bin/sh
lrwxrwxrwx 1 root root 4 Aug  6 19:54 /bin/sh -> bash

Обновление оболочки root - это bash

grep root /etc/passwd
root:x:0:0:root:/root:/bin/bash

2 ответа2

2

У вас есть набор файлов .bashrc ? Он может быть поврежден или поврежден, или имеет что-то, что может привести к сбою обработки .bashrc . И, как следствие, не доходит до того, что он может чисто переварить / обработать .bash_profile .

Как показано на этом сайте, .bashrc загружается до .bash_profile:

+----------------+-----------+-----------+------+
|                |Interactive|Interactive|Script|
|                |login      |non-login  |      |
+----------------+-----------+-----------+------+
|/etc/profile    |   A       |           |      |
+----------------+-----------+-----------+------+
|/etc/bash.bashrc|           |    A      |      |
+----------------+-----------+-----------+------+
|~/.bashrc       |           |    B      |      |
+----------------+-----------+-----------+------+
|~/.bash_profile |   B1      |           |      |
+----------------+-----------+-----------+------+
|~/.bash_login   |   B2      |           |      |
+----------------+-----------+-----------+------+
|~/.profile      |   B3      |           |      |
+----------------+-----------+-----------+------+
|BASH_ENV        |           |           |  A   |
+----------------+-----------+-----------+------+
|                |           |           |      |
+----------------+-----------+-----------+------+
|                |           |           |      |
+----------------+-----------+-----------+------+
|~/.bash_logout  |    C      |           |      |
+----------------+-----------+-----------+------+

Я бы порекомендовал проверить этот .bashrc и, возможно, даже временно переименовать его, например, .bashrc_off чтобы отключить его, чтобы проверить теорию перед дальнейшей отладкой.

0

Что это был последний бит о /bin/sh? Если для оболочки root по умолчанию задано значение /bin/sh , то bash будет вызываться в режиме совместимости с оболочкой POSIX Bourne, где не запускаются специфичные для bash скрипты запуска.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .