我在PATH中有一个可执行文件,可以通过cd-ing进入包含该目录的目录来执行。但是我无法在该目录之外执行它。我在Mac上。可执行文件称为rosetta-cli。它位于~/rosetta-cli/rosetta-cli
。
我对zsh和bash不太熟悉,我只知道基本知识:)
septerr@septerr ~ % echo $PATH
/usr/local/opt/node@10/bin:/Users/septerr/.rbenv/bin:/Users/septerr/.rbenv/shims:/usr/local/opt/node@10/bin:/Users/septerr/.rbenv/bin:/Users/septerr/.rbenv/shims:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/Apple/usr/bin:/Users/septerr/go/bin:/Users/septerr/rosetta-cli/rosetta-cli:/Users/septerr/go/bin:/Users/septerr/rosetta-cli/rosetta-cli
septerr@septerr ~ % rosetta-cli
zsh: command not found: rosetta-cli
septerr@septerr ~ % rosetta-cli/rosetta-cli
CLI for the Rosetta API
Usage:
rosetta-cli [command]
Available Commands:
check:construction Check the correctness of a Rosetta Construction API Implementation
check:data Check the correctness of a Rosetta Data API Implementation
我的.zshrc:
eval "$($(go env GOPATH)/bin/assume-role -init)"
eval "$(rbenv init -)"
export RUBY_CONFIGURE_OPTS="--with-openssl-dir=$(brew --prefix openssl@1.1)"
export GO111MODULE=on
export GOPROXY=https://gomodules.cbhq.net/
export GONOSUMDB=github.cbhq.net # For Go 1.13 and laterexport PATH="$HOME/.rbenv/bin:$PATH"
PATH="$HOME/.rbenv/bin:$PATH"
export GOPATH=$HOME/go
export PATH=$PATH:$GOPATH/bin
export MONOREPO_PATH="/Users/septerr/src/sgupta/repo" && source $MONOREPO_PATH/scripts/rc/rc.sh
export PATH="/usr/local/opt/node@10/bin:$PATH"
export PATH=$PATH:$HOME/rosetta-cli/rosetta-cli
我的.bash_profile:
eval "$(rbenv init -)"
export GO111MODULE=on
export GOPROXY=https://gomodules.cbhq.net/
export GONOSUMDB=github.cbhq.net # For Go 1.13 and laterexport PATH="$HOME/.rbenv/bin:$PATH"
PATH="$HOME/.rbenv/bin:$PATH"
export GOPATH=$HOME/go
export PATH=$PATH:$GOPATH/bin
export MONOREPO_PATH="/Users/septerr/src/sgupta/repo" && source $MONOREPO_PATH/scripts/rc/rc.sh
export PATH=$PATH:$HOME/rosetta-cli/rosetta-cli
我的.bashrc:
eval "$($(go env GOPATH)/bin/assume-role -init)"
export MONOREPO_PATH="/Users/septerr/src/sgupta/repo" && source $MONOREPO_PATH/scripts/rc/rc.sh
问题-
谢谢您的帮助!
答案 0 :(得分:1)
您可以信任您的shell,如果它说 command not found (找不到命令),则该可执行文件不在PATH中,或者它也不是可执行文件。
您显示了PATH和命令的名称,但没有告诉我们该可执行文件应位于哪个目录。有根据地猜测,我想说/Users/septerr/rosetta-cli/rosetta-cli
应该是可执行文件(但这是您需要比我更了解的东西)。如果您到目前为止同意,请执行
ls /Users/septerr/rosetta-cli/rosetta-cli/rosetta-cli
如果rosetta-cli
实际上是此目录中的可执行文件,则ls
应该显示它,并且x位应打开。
答案 1 :(得分:1)
使用typeset -Ug path
从zsh中的PATH
中删除重复项。