Назад | Перейти на главную страницу

'source .bash_profile' не работает, но 'source path / to / .bash_profile' работает

Я пытаюсь создать свой файл .bashrc на удаленном хосте внутри пользователя sudo-less. Я получаю следующие ответы.

sh-4.2$ source .bash_profile
sh-4.2$ source: .bash_profile: file not found

sh-4.2$ source ~/.bash_profile
[user@hera ~]$

Почему такое поведение?

добавленное изображение

содержимое .bash_profile

содержимое .bashrc

# .bashrc

# Source global definitions
if [ -f /etc/bashrc ]; then
    . /etc/bashrc
fi

# Uncomment the following line if you don't like systemctl's auto-paging feature:
# export SYSTEMD_PAGER=

# User specific aliases and functions

# added by Anaconda3 4.1.1 installer
export PATH="/home/tensorflow/anaconda3/bin:$PATH"

Вы используете bash в режиме POSIX.

Из man bash под source filename [arguments]

Если имя файла не содержит косую черту, имена файлов в PATH используются для поиска каталога, содержащего имя файла ... Когда bash не в режиме posix, выполняется поиск в текущем каталоге, если в PATH не найден файл.

Bash работает в режиме posix, потому что вы запустили его как sh скорее, чем bash (таким образом, командная строка sh-4.2). Вам нужно будет сменить оболочку на /bin/bash чтобы использовать такие «баш-измы».

вы можете увидеть, какой путь с помощью команды pwd - держу пари, что ваш .bashrc не находится в текущем рабочем каталоге