-cでコマンドを渡すときに.zshrcを実行します。

-cでコマンドを渡すときに.zshrcを実行します。

コマンドを実行するスクリプトがありますzsh -c。ところで、zsh実行時にロードできないようです~/.zshrc

わかりました。ログインシェルフラグが存在します。しかし、zsh -lc <command>それも動作しないようです。

私のファイルで定義されている関数、エイリアス、変数を取得する方法~/.zshrcランタイムパディングzsh -c

答え1

zsh.zshrc非対話型シェルでは読まないzshでください。対話型シェルを呼び出してスクリプトを実行する:

$ zsh -ic 'type f'
f is a shell function

または、いつでも.zshrc手動でインポートできます。

$ zsh -c '. ~/.zshrc; type f'
f is a shell function

答え2

cuonglmが言ったように、この非対話型シェルにはロードされませzshんが、.zshrcするジム.zshenv。したがって、tty設定など、ttyが不要な設定を実行する$PATH場合.zshenv

~からzsh ドキュメント:

.zshenv-fオプションが設定されていない場合は、シェルへのすべての呼び出しからこの情報を取得します。これには、コマンド検索パスを設定するコマンドとその他の重要な環境変数を含める必要があります。.zshenv出力を生成したり、シェルがttyに接続されていると仮定するコマンドを含めないでください。

関連情報