たぶんこれはWSLの問題かもしれませんが、この場合どこに尋ねるべきかわかりません。
pathに追加したいバイナリファイルがあります~/.scry/bin/scry
。だから行って~/.bashrc
追加しました。
export PATH="$HOME/.scry/bin/scry:$PATH"
そのフォルダを追加したくない理由は、~/.scry/bin
パスに望ましくない他のバイナリがあるためです。
私はこれをし、次を実行しました。
~$ . .bashrc
scry
しかし、(バイナリ)実行するとcommand not found
エラーが発生します。コンソールを再起動し(Ctrl+ D)、もう一度開いてみました(debian)。しかし、まだコマンドを認識していません。
どうすればいいのか分かりません。助けてください。
答え1
hash -p "$HOME"/.scry/bin/scry scry
上記の内容をファイルに追加すると、.bashrc
インタラクティブシェルscry
が"$HOME"/.scry/bin/scry
。
同様の操作を実行する別の方法には、エイリアスを作成することがあります。
alias scry="$HOME"/.scry/bin/scry
またはシェル機能
scry () {
"$HOME"/.scry/bin/scry "$@"
}
このPATH
変数には:
区切りリストが含まれています。目次まだ使用されていないコマンドが与えられたときにこのコマンドを検索します。したがって、ユーティリティのパス名をPATH
変数に追加しても、実際には何もしません。
答え2
これはうまくいきません。パスは、PATH
実行ファイルか他の種類のファイルであるかに関係なく、コマンドの前に追加されるディレクトリとして処理されます。
簡単な解決策は、別の場所にディレクトリを作成し、そこにバイナリへのシンボリックリンクを作成してから、そのディレクトリを次に追加することですPATH
。
mkdir ~/my-bin
ln -s ~/.scry/bin/scry ~/my-bin
PATH=$PATH:~/my-bin