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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions