web-dev-qa-db-ja.com

'source .bash_profile'は失敗しますが、 'source path / to /.bash_profile'は機能します

Sudo-lessユーザー内のリモートホストで.bashrcファイルを入手しようとしています。以下の回答があります。

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"
1
v78

POSIXモードでbashを使用しています。

man bashの下のsource filename [arguments]から

Filenameにスラッシュが含まれていない場合、PATH内のファイル名を使用してfilenameを含むディレクトリが検索されます... bashがposixモードでない場合、PATHにファイルが見つからない場合は、現在のディレクトリが検索されます。

Bashは、shではなくbashとして開始したため(したがって、コマンドプロンプトはsh-4.2)、posixモードで実行されています。このような「bash-isms」を使用するには、シェルを/bin/bashに変更する必要があります。

5
DerfK

pwdコマンドでパスが何であるかを確認できます-.bashrcが現在の作業ディレクトリにないことは間違いありません

0
Martynas Saint