「which」コマンドは、カスタムパス位置の出力を表示しません。

「which」コマンドは、カスタムパス位置の出力を表示しません。

想像する

GitHubにProductivityScriptsプロジェクトがあり、Linux(Debian 9)をインストールするときにPATH使いやすいようにこのフォルダを追加しました。

つまり、次の行を追加します~/.bashrc

export PATH="~/Dev/ProductivityScripts:$PATH"

効果があるこれで、どこからでもこのフォルダ内で名前でスクリプトを実行できます。

alec@my_host:~$ capsalt
SUCCESS!

ただし、入力するとwhich capsalt何も出力されません。

whichほとんどのことが動作します。

alec@my_host:~$ which git
/usr/bin/git

質問

whichPATHに手動で追加された場所で利用可能なスクリプトを追跡することはできませんか?それともこれがうまくいかないもう一つの理由はありますか?

答え1

~これは、二重引用符内で変数として機能せず、whichチルダを独自に拡張しないためである可能性が高いです。

使用

PATH="$HOME/Dev/ProductivityScripts:$PATH"

代わりに。HOMEこれは環境変数であり、通常どおり二重引用符で展開されます。また、PATHすでにエクスポートしているため、再エクスポートする必要はありません(転送しても問題ありません)。

チルダに関する追加情報:二重引用符の中でチルダ(〜)が拡張されないのはなぜですか?

また、見ることができます「which」を使わないのはなぜですか?それでは何を使うべきですか?

関連情報