.profileからスクリプトをインポートできないのはなぜですか?

.profileからスクリプトをインポートできないのはなぜですか?

ログインするか新しいインタラクティブシェルを開くたびに実行したい実行可能スクリプトがあります。この実行可能ファイルのパスを追加し、.profile次の行を追加することで得られました。.profile

source $HOME/bin/wrapper

再起動後、スクリプトは実行されません。

.profileFedoraを再起動した後でもbashがbashでスクリプトを実行しないのはなぜですか?

編集する:質問をより明確にする

ベストアンサー1

.profileいくつかの調査を行った結果、次の2つの理由でソーシングスクリプトが機能しないことがわかりました。

  1. 新しいターミナルセッションを開くと、bashはログインではなく対話型シェルとして実行されます。.profile非対話型ログインシェルに対してのみ実行されるため、ターミナルセッションを開始しても実行されません。

  2. スクリプトはログイン時間から始まりますが.profile、ログイン時間とは関係ありません。ログイン時に子プロセスにエクスポートする環境変数を設定します.profile源泉ログイン時に初期化された最初のbashインスタンスから開始されたサブプロセスにエクスポートできないコマンド。つまり、インタラクティブで、ログインではなくインタラクティブシェルで実行される唯一の起動ファイルでsourceある必要があります。.bashrc

TL; DR.profileスクリプトはログイン時に一度だけインポートされ、ターミナルセッション環境に渡されません。だからスクリプトを.bashrc

上記の質問に答える能力は~/.bash_profileありません。源泉コマンドが追加されました.profile

ボーナス:このため、エイリアス設定も機能しないとします。.profileこれは、ターミナルウィンドウに新しい環境が作成されるたびに実行する必要があるコマンドであるためです。

おすすめ記事