Zシェルが~/.zshrcと~/.profileの両方を尊重する方法は?

Zシェルが~/.zshrcと~/.profileの両方を尊重する方法は?

私はMacでZシェルを使用しており、ホームディレクトリの.zshrcと.profileにいくつかの設定があります。

.profileのみがある場合、zshは新しいセッションから.profileを取得します。 .profileと.zshrcの両方がある場合、zshは.zshrcのみを取得し、.profileを無視します。

シェルがこれら2つの設定ファイルを尊重するようにするか、.zshrcから.profileをインポートする方法はありますか?

ベストアンサー1

Zshは通常、ログインせずにソース.zprofileとして提供されます。.profile.zshrc対話型セッションに入らないとログインするとソースを取得できません。)しかし、ソースを取得しようとしていて、.profile他のシェルに固有のもの(bashに固有のものなど)がない場合は、次のことができます。常にputファイルを入力source .profileしてください.zprofile

.zshrcログインシェルかどうかにかかわらず、対話型シェルが呼び出されたときに取得されます。.zprofileただし、ログインしていない場合はソースを再インポートしません。

私は常に2つのファイルのうちの1つに必要なものをすべて入れ、他のファイルにそれを提供させます。たとえば、すべてのエイリアスと環境変数をmyに保存し、.zshrcこの行をsource $HOME/.zshrcmyに保存して、.zprofile非対話型ログインシェルでも常に読み取ることができます。

お互いに餌を与えないように注意してください。これは明らかに無限ループを生成するので、誘惑的です。

3番目のファイルを使用して目的のタスクを実行し、両方のファイルに3番目のファイルを取得させることもできます。

おすすめ記事