Zsh

無法立即訪問 $PATH 文件夾中的二進製文件

  • April 3, 2018

在我$PATH的文件夾~/.zsh/bin中,我將其用於小腳本和自定義建構的可執行二進製文件,例如,我添加了一個最近編譯的工具,我呼叫wercker_build_status了該文件夾。然而,當我在命令行中輸入時wercker_build_status它找不到它,我必須輸入文件的完整路徑,~/.zsh/bin/wercker_build_status.

這並不是說文件夾中的任何內容都不起作用,我呼叫的腳本wifi_status在那裡,在命令行中鍵入它會按預期返回 wifi 狀態。

為什麼即使它在我的$PATH我不能只使用我添加到文件夾中的文件~/.zsh/bin

在您的路徑中使用$HOME而不是波浪號 ( ~),尤其是當您將新PATH的用雙引號括起來時。波浪號出現在引號中時不會擴展。

測試:

$ mkdir "$HOME/t"

$ cat >"$HOME/t/foo" <<END
#!/bin/sh
echo "hello"
END

$ chmod +x "$HOME/t/foo"

$ PATH="$PATH:~/t"

$ foo
zsh: command not found: foo

$ PATH="$PATH:$HOME/t"

$ foo
hello

另請參閱:為什麼波浪號 (~) 不在雙引號內展開?

引用自:https://unix.stackexchange.com/questions/435230