.profile ファイル内の関数を実行する方法

.profile ファイル内の関数を実行する方法

環境変数からディレクトリの重複コピーを削除する関数がありますPATH。テストできるように重複をいくつか作成しましたが、方法がわかりません。

$HOME/.bashrc1)ファイルにスクリプトを入れる

答え1

ファイルを編集し.bashrc(念のため、最初に元のファイルのコピーを作成しておくことをお勧めします)、実行するスクリプトの名前をファイルに 1 行追加するだけです (ファイルの末尾でも.bashrc問題ありません)。

スクリプトがホームディレクトリにない場合は、必ず完全なパスを指定してください。

答え2

などの環境変数の適切なファイルはではPATHありません~/.bashrc~/.profile.bashrcは対話型シェルの設定ファイルです。.profileはセッション起動スクリプトです。すべてのシェルで読み取られる「.bashrc」と同等のファイルはありますか?

Bash の起動ファイルは少々特殊です。ログイン シェルでは、~/.bash_profile存在する場合は を、存在し~/.profileない場合は を読み取ります。対話型の非ログイン シェルでは を読み取ります~/.bashrc。対話型ログイン シェルで対話型設定を読み込まない理由はなく、セッション開始シェルがログイン シェルとして呼び出されず、~/.profile明示的に読み込まれる設定も多数あります。そのため、 には~/.bash_profile次の 2 行だけを含めます。

. ~/.profile
case $- in *i*) . ~/.bashrc;; esac

に何かが入っている場合は、環境変数設定のようなものは に移動し、エイリアスやキーバインディングなどの対話型シェル設定のようなものは に移動します。すべての~/.bash_profile操作を に置きます。~/.profile~/.bashrcPATH~/.profile

関連情報