zsh:即使在路径中也找不到命令

时间:2020-10-14 15:43:29

标签: zsh

我在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

问题-

  1. 为什么Rosetta-cli命令在任何目录中都不可用?
  2. 为什么$ PATH中的某些路径会重复?

谢谢您的帮助!

2 个答案:

答案 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中删除重复项。