私は最近私のプライベートスクリプトを私の変数$HOME
に含めることにしました。$PATH
ただし、これを実行しようとすると、ZSHは「コマンドが見つかりません」と応答します。次の行は私が追加したものです。.xprofile
PATH="$PATH:~/.local/share/";export PATH
いくつかのスクリプトがありますが、~/.local/share/
ZSHでは実行できませんが、bashではうまく動作します。上記のライブを私のライブに追加しようとしましたが、うまくいきませ.zshrc
んでした。
答え1
~
変数ではなく、変数のように動作しません。
~
シェルは通常引用しても拡張されません。シェルの特殊なチルダ文字の処理に依存せずに、ホームディレクトリへの正しいパスを取得するために、すべてのシェルで$HOME
置換を使用できます(対話式シェルで主に使用されるショートカット)。~
$HOME
するこれは、変数が機能すると予想されるとおりに機能します。つまり、二重引用符で囲むと、ホームディレクトリパスに展開されます。
また、その可能性が低いことも参考にしてくださいPATH
。いいえすでに環境変数です。したがって、エクスポートする必要はありません。
zsh
シェルで~/.local/share
コマンド検索パスの末尾に追加するには、次のこともできます。
path+=~/.local/share
または
path+=$HOME/.local/share
配列変数path
は束スカラー変数に追加されますPATH
。つまり、上記のように配列を更新すると、追加された要素path
が値の末尾に追加されます$PATH
。
答え2
ZSH起動スクリプト~/.zshrc
はとです~/.zshenv
。私は通常、グローバル環境変数PATH
を~/.zshenv
。
起動スクリプトの他のディレクティブは、あなたのディレクティブを上書きまたは置き換えることができますPATH
。 zshの起動中に何が起こるかを確認するには、次のようにします。
zsh -x 2>&1 </dev/null |grep PATH
スクリプトを起動しても、すでに実行されているシェルには影響しません。これを更新するには:
- たとえば、スクリプトを取得します。
. ~/.zshenv
exec zsh -l
zsh( ) 再実行- ログアウトしてもう一度ログインしてください。