コマンドを実行するスクリプトがあります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に接続されていると仮定するコマンドを含めないでください。