Skip to content

cdhist: error: unrecognized arguments: -q #3835

@glensc

Description

@glensc

Operating system and version:

macOS Catalina (10.15.8)

nvm debug output:

Details

nvm ls output:

Details

How did you install nvm?

What steps did you perform?

What happened?

nvm installation instructions from https://nodejs.org/en/download:

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.4/install.sh | bash
\. "$HOME/.nvm/nvm.sh"

have printed error:

$ \. "$HOME/.nvm/nvm.sh"
usage: cdhist [-i] [-h] [-p] [-a] [-g] [-r] [-R] [-u] [-U] [-l] [-m SIZE]
              [-n NUM_LINES] [-L] [-P] [-V]
              [directory]
cdhist: error: unrecognized arguments: -q
$ echo $NVM_DIR
/
$ type cd
cd is a shell function from /dev/fd/16
$ zsh --version
zsh 5.9 (x86_64-apple-darwin19.6.0)

What did you expect to happen?

It seems it's using cd shell alias function, rather builtin cd

I've analyzed installed nvm.sh and seems the failure is in this part:

if nvm_is_zsh; then
  NVM_CD_FLAGS="-q"
fi
...

NVM_DIR="$(nvm_cd ${NVM_CD_FLAGS} "$(dirname "${NVM_SCRIPT_SOURCE:-$0}")" >/dev/null && \pwd)"

here's fuller debug/reproducer:

$ (unset NVM_DIR; set -x; . "$HOME/.nvm/nvm.sh") 2>&1 | pbcopy
+/usr/local/bin/zsh:30> . /Users/glen/.nvm/nvm.sh
+/Users/glen/.nvm/nvm.sh:14> NVM_SCRIPT_SOURCE='' 
+/Users/glen/.nvm/nvm.sh:439> [ -z -q ']'
+/Users/glen/.nvm/nvm.sh:442> nvm_is_zsh
+nvm_is_zsh:1> [ -n 5.9 ']'
+/Users/glen/.nvm/nvm.sh:443> NVM_CD_FLAGS=-q 
+/Users/glen/.nvm/nvm.sh:447> [ -z '' ']'
+/Users/glen/.nvm/nvm.sh:449> [ -n '' ']'
+/Users/glen/.nvm/nvm.sh:453> NVM_DIR=+/Users/glen/.nvm/nvm.sh:453> dirname /Users/glen/.nvm/nvm.sh
+/Users/glen/.nvm/nvm.sh:453> NVM_DIR=+/Users/glen/.nvm/nvm.sh:453> nvm_cd -q /Users/glen/.nvm
+nvm_cd:1> cd -q /Users/glen/.nvm
+cd:1> local d
+cd:2> d=+cd:2> /Users/glen/.local/bin/cdhist -q /Users/glen/.nvm
usage: cdhist [-i] [-h] [-p] [-a] [-g] [-r] [-R] [-u] [-U] [-l] [-m SIZE]
              [-n NUM_LINES] [-L] [-P] [-V]
              [directory]
cdhist: error: unrecognized arguments: -q
+cd:2> d='' 
+cd:4> [ 2 -ne 0 ']'
+cd:5> return 0
+/Users/glen/.nvm/nvm.sh:453> pwd
+/Users/glen/.nvm/nvm.sh:453> NVM_DIR=/ 
+/Users/glen/.nvm/nvm.sh:454> export NVM_DIR
+/Users/glen/.nvm/nvm.sh:465> unset NVM_SCRIPT_SOURCE
+/Users/glen/.nvm/nvm.sh:4718> nvm_process_parameters
+nvm_process_parameters:1> local NVM_AUTO_MODE
+nvm_process_parameters:2> NVM_AUTO_MODE=use 
+nvm_process_parameters:3> [ 0 -ne 0 ']'
+nvm_process_parameters:10> nvm_auto use
+nvm_auto:1> local NVM_MODE
+nvm_auto:2> NVM_MODE=use 
+nvm_auto:4> case use (none)
+nvm_auto:4> case use (use)
+nvm_auto:7> local VERSION
+nvm_auto:8> local NVM_CURRENT
+nvm_auto:9> NVM_CURRENT=+nvm_auto:9> nvm_ls_current
+nvm_ls_current:1> local NVM_LS_CURRENT_NODE_PATH
+nvm_ls_current:2> NVM_LS_CURRENT_NODE_PATH=+nvm_ls_current:2> which node
+nvm_ls_current:2> NVM_LS_CURRENT_NODE_PATH=/usr/local/bin/node 
+nvm_ls_current:4> nvm_version_dir iojs
+nvm_version_dir:1> local NVM_WHICH_DIR
+nvm_version_dir:2> NVM_WHICH_DIR=iojs 
+nvm_version_dir:3> [ -z iojs ']'
+nvm_version_dir:3> [ iojs '=' new ']'
+nvm_version_dir:5> [ _iojs '=' _iojs ']'
+nvm_version_dir:6> nvm_echo //versions/io.js
+nvm_echo:1> printf '%s\n' //versions/io.js
+nvm_ls_current:4> nvm_tree_contains_path //versions/io.js /usr/local/bin/node
+nvm_tree_contains_path:1> local tree
+nvm_tree_contains_path:2> tree=//versions/io.js 
+nvm_tree_contains_path:3> local node_path
+nvm_tree_contains_path:4> node_path=/usr/local/bin/node 
+nvm_tree_contains_path:6> [ @//versions/io.js@ '=' @@ ']'
+nvm_tree_contains_path:6> [ @/usr/local/bin/node@ '=' @@ ']'
+nvm_tree_contains_path:11> local previous_pathdir
+nvm_tree_contains_path:12> previous_pathdir=/usr/local/bin/node 
+nvm_tree_contains_path:13> local pathdir
+nvm_tree_contains_path:14> pathdir=+nvm_tree_contains_path:14> dirname /usr/local/bin/node
+nvm_tree_contains_path:14> pathdir=/usr/local/bin 
+nvm_tree_contains_path:15> [ /usr/local/bin '!=' '' ']'
+nvm_tree_contains_path:15> [ /usr/local/bin '!=' . ']'
+nvm_tree_contains_path:15> [ /usr/local/bin '!=' / ']'
+nvm_tree_contains_path:16> [ /usr/local/bin '!=' //versions/io.js ']'
+nvm_tree_contains_path:16> [ /usr/local/bin '!=' /usr/local/bin/node ']'
+nvm_tree_contains_path:17> previous_pathdir=/usr/local/bin 
+nvm_tree_contains_path:18> pathdir=+nvm_tree_contains_path:18> dirname /usr/local/bin
+nvm_tree_contains_path:18> pathdir=/usr/local 
+nvm_tree_contains_path:15> [ /usr/local '!=' '' ']'
+nvm_tree_contains_path:15> [ /usr/local '!=' . ']'
+nvm_tree_contains_path:15> [ /usr/local '!=' / ']'
+nvm_tree_contains_path:16> [ /usr/local '!=' //versions/io.js ']'
+nvm_tree_contains_path:16> [ /usr/local '!=' /usr/local/bin ']'
+nvm_tree_contains_path:17> previous_pathdir=/usr/local 
+nvm_tree_contains_path:18> pathdir=+nvm_tree_contains_path:18> dirname /usr/local
+nvm_tree_contains_path:18> pathdir=/usr 
+nvm_tree_contains_path:15> [ /usr '!=' '' ']'
+nvm_tree_contains_path:15> [ /usr '!=' . ']'
+nvm_tree_contains_path:15> [ /usr '!=' / ']'
+nvm_tree_contains_path:16> [ /usr '!=' //versions/io.js ']'
+nvm_tree_contains_path:16> [ /usr '!=' /usr/local ']'
+nvm_tree_contains_path:17> previous_pathdir=/usr 
+nvm_tree_contains_path:18> pathdir=+nvm_tree_contains_path:18> dirname /usr
+nvm_tree_contains_path:18> pathdir=/ 
+nvm_tree_contains_path:15> [ / '!=' '' ']'
+nvm_tree_contains_path:15> [ / '!=' . ']'
+nvm_tree_contains_path:15> [ / '!=' / ']'
+nvm_tree_contains_path:20> [ / '=' //versions/io.js ']'
+nvm_ls_current:6> nvm_tree_contains_path / /usr/local/bin/node
+nvm_tree_contains_path:1> local tree
+nvm_tree_contains_path:2> tree=/ 
+nvm_tree_contains_path:3> local node_path
+nvm_tree_contains_path:4> node_path=/usr/local/bin/node 
+nvm_tree_contains_path:6> [ @/@ '=' @@ ']'
+nvm_tree_contains_path:6> [ @/usr/local/bin/node@ '=' @@ ']'
+nvm_tree_contains_path:11> local previous_pathdir
+nvm_tree_contains_path:12> previous_pathdir=/usr/local/bin/node 
+nvm_tree_contains_path:13> local pathdir
+nvm_tree_contains_path:14> pathdir=+nvm_tree_contains_path:14> dirname /usr/local/bin/node
+nvm_tree_contains_path:14> pathdir=/usr/local/bin 
+nvm_tree_contains_path:15> [ /usr/local/bin '!=' '' ']'
+nvm_tree_contains_path:15> [ /usr/local/bin '!=' . ']'
+nvm_tree_contains_path:15> [ /usr/local/bin '!=' / ']'
+nvm_tree_contains_path:16> [ /usr/local/bin '!=' / ']'
+nvm_tree_contains_path:16> [ /usr/local/bin '!=' /usr/local/bin/node ']'
+nvm_tree_contains_path:17> previous_pathdir=/usr/local/bin 
+nvm_tree_contains_path:18> pathdir=+nvm_tree_contains_path:18> dirname /usr/local/bin
+nvm_tree_contains_path:18> pathdir=/usr/local 
+nvm_tree_contains_path:15> [ /usr/local '!=' '' ']'
+nvm_tree_contains_path:15> [ /usr/local '!=' . ']'
+nvm_tree_contains_path:15> [ /usr/local '!=' / ']'
+nvm_tree_contains_path:16> [ /usr/local '!=' / ']'
+nvm_tree_contains_path:16> [ /usr/local '!=' /usr/local/bin ']'
+nvm_tree_contains_path:17> previous_pathdir=/usr/local 
+nvm_tree_contains_path:18> pathdir=+nvm_tree_contains_path:18> dirname /usr/local
+nvm_tree_contains_path:18> pathdir=/usr 
+nvm_tree_contains_path:15> [ /usr '!=' '' ']'
+nvm_tree_contains_path:15> [ /usr '!=' . ']'
+nvm_tree_contains_path:15> [ /usr '!=' / ']'
+nvm_tree_contains_path:16> [ /usr '!=' / ']'
+nvm_tree_contains_path:16> [ /usr '!=' /usr/local ']'
+nvm_tree_contains_path:17> previous_pathdir=/usr 
+nvm_tree_contains_path:18> pathdir=+nvm_tree_contains_path:18> dirname /usr
+nvm_tree_contains_path:18> pathdir=/ 
+nvm_tree_contains_path:15> [ / '!=' '' ']'
+nvm_tree_contains_path:15> [ / '!=' . ']'
+nvm_tree_contains_path:15> [ / '!=' / ']'
+nvm_tree_contains_path:20> [ / '=' / ']'
+nvm_ls_current:7> local VERSION
+nvm_ls_current:8> VERSION=+nvm_ls_current:8> node --version
+nvm_ls_current:8> VERSION='' 
+nvm_ls_current:9> [ '' '=' v0.6.21-pre ']'
+nvm_ls_current:12> nvm_echo none
+nvm_echo:1> printf '%s\n' none
+nvm_auto:9> NVM_CURRENT=none 
+nvm_auto:10> [ _none '=' _none ']'
+nvm_auto:11> VERSION=+nvm_auto:11> nvm_resolve_local_alias default
+nvm_auto:11> nvm_echo
+nvm_echo:1> printf '%s\n' ''
+nvm_auto:11> VERSION='' 
+nvm_auto:12> [ -n '' ']'
+nvm_auto:18> nvm_rc_version

Is there anything in any of your profile files that modifies the PATH?

If you are having installation issues, or getting "N/A", what does curl -I --compressed -v https://nodejs.org/dist/ print out?

Details

Metadata

Metadata

Assignees

No one assigned

    Labels

    needs followupWe need some info or action from whoever filed this issue/PR.shell alias clobberingAnything dealing with users shadowing builtins with aliases or functions.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions