システムのfpathの代わりにユーザーのfpathにアクセスするためにスクリプトをどのように使用できますか?

システムのfpathの代わりにユーザーのfpathにアクセスするためにスクリプトをどのように使用できますか?

テスト.zsh:

#!/usr/bin/env zsh                                                                                                           

for f in ${fpath}; do
    echo ${f}
done

出力:

/usr/local/share/zsh/site-functions
/usr/share/zsh/functions/Calendar
/usr/share/zsh/functions/Completion
/usr/share/zsh/functions/Completion/AIX
/usr/share/zsh/functions/Completion/BSD
/usr/share/zsh/functions/Completion/Base
/usr/share/zsh/functions/Completion/Cygwin
/usr/share/zsh/functions/Completion/Darwin
/usr/share/zsh/functions/Completion/Debian
/usr/share/zsh/functions/Completion/Linux
/usr/share/zsh/functions/Completion/Mandriva
/usr/share/zsh/functions/Completion/Redhat
/usr/share/zsh/functions/Completion/Solaris
/usr/share/zsh/functions/Completion/Unix
/usr/share/zsh/functions/Completion/X
/usr/share/zsh/functions/Completion/Zsh
/usr/share/zsh/functions/Exceptions
/usr/share/zsh/functions/MIME
/usr/share/zsh/functions/Misc
/usr/share/zsh/functions/Newuser
/usr/share/zsh/functions/Prompts
/usr/share/zsh/functions/TCP
/usr/share/zsh/functions/VCS_Info
/usr/share/zsh/functions/VCS_Info/Backends
/usr/share/zsh/functions/Zftp
/usr/share/zsh/functions/Zle

コマンドライン出力にはいくつかの追加項目がありますが、次のようになります。

╭─ting@core ~/code/autojump  ‹install-zsh-local*›
╰─➤  echo $fpath       
/home/ting/code/oh-my-zsh/plugins/git
/home/ting/code/oh-my-zsh/functions
/home/ting/code/oh-my-zsh/completions
/usr/local/share/zsh/site-functions
/usr/share/zsh/functions/Calendar
/usr/share/zsh/functions/Completion
/usr/share/zsh/functions/Completion/AIX
/usr/share/zsh/functions/Completion/BSD
/usr/share/zsh/functions/Completion/Base
/usr/share/zsh/functions/Completion/Cygwin
/usr/share/zsh/functions/Completion/Darwin
/usr/share/zsh/functions/Completion/Debian
/usr/share/zsh/functions/Completion/Linux
/usr/share/zsh/functions/Completion/Mandriva
/usr/share/zsh/functions/Completion/Redhat
/usr/share/zsh/functions/Completion/Solaris
/usr/share/zsh/functions/Completion/Unix
/usr/share/zsh/functions/Completion/X
/usr/share/zsh/functions/Completion/Zsh
/usr/share/zsh/functions/Exceptions
/usr/share/zsh/functions/MIME
/usr/share/zsh/functions/Misc
/usr/share/zsh/functions/Newuser
/usr/share/zsh/functions/Prompts
/usr/share/zsh/functions/TCP
/usr/share/zsh/functions/VCS_Info
/usr/share/zsh/functions/VCS_Info/Backends
/usr/share/zsh/functions/Zftp
/usr/share/zsh/functions/Zle

スクリプトがシステムの代わりにユーザーのfpathにアクセスできるようにするにはどうすればよいですか?

ベストアンサー1

fpathユーザーはKey-Value構成ファイルの単純な割り当てでは設定されず、複雑なスクリプトを介して設定される可能性があるため、実際にはできません。たとえば、myはfpathzshのバージョンとシステムに存在するディレクトリによって異なります。ユーザーの取得は可能ですが、~/.zshrcこれはさまざまな操作を実行できます(特にzshが端末で実行されていない場合は機能しない可能性があり、内容を印刷する可能性があります。そうしないと、シェルが対話型であると仮定します)。

zsh source~/.zshenvなので、ユーザーはfpathそこから設定することをお勧めします。

おすすめ記事