-
Notifications
You must be signed in to change notification settings - Fork 575
Open
Description
After I run the following:
bash <<(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer)
source ~/.gvm/scripts/gvmthe GVM installed and version is Go Version Manager v1.0.22
I found I can't run cd to change dir. After ask AI ,and run type cd , the following came out , and obviously not right.
I believe this is bug ,though I'm not genius at coding.
[shydoors@myant ~]$ type cd
cd 是函数
cd ()
{
if __gvm_is_function __gvm_oldcd; then
__gvm_oldcd $*;
fi;
local dot_go_version dot_go_pkgset rslt;
local defaults_go_name defaults_go_pkgset;
local defaults_resolved=false;
local defaults_hash;
defaults_hash=();
if [[ "$GVM_ROOT" == "" ]]; then
display_error "GVM_ROOT not set. Please source \$GVM_ROOT/scripts/gvm";
return $?;
fi;
[[ "${GVM_DEBUG}" -eq 1 ]] && echo "Resolving defaults...";
defaults_hash=($(__gvm_read_environment_file "${GVM_ROOT}/environments/default"));
if [[ $? -eq 0 ]]; then
defaults_resolved=true;
else
[[ "${GVM_DEBUG}" -eq 1 ]] && echo "Can't find default environment. Falling back to system.";
defaults_hash=($(__gvm_read_environment_file "${GVM_ROOT}/environments/system"));
if [[ $? -eq 0 ]]; then
defaults_resolved=true;
else
[[ "${GVM_DEBUG}" -eq 1 ]] && echo "Can't find system environment.";
fi;
fi;
if [[ "${defaults_resolved}" == false ]]; then
[[ "${GVM_DEBUG}" -eq 1 ]] && echo "Resolving fallback go version and pkgset from all available.";
local fallback_go_version="$(__gvm_resolve_fallback_version)";
local fallback_go_pkgset="$(__gvm_resolve_fallback_pkgset "${fallback_go_version}")";
[[ "${GVM_DEBUG}" -eq 1 ]] && echo "=======================================";
[[ "${GVM_DEBUG}" -eq 1 ]] && echo "fallback_go_version => $fallback_go_version";
[[ "${GVM_DEBUG}" -eq 1 ]] && echo "fallback_go_pkgset => $fallback_go_pkgset";
[[ "${GVM_DEBUG}" -eq 1 ]] && echo "=======================================";
defaults_hash=($(setValueForKeyFakeAssocArray "gvm_go_name" "${fallback_go_version}" "${defaults_hash[*]}"));
defaults_hash=($(setValueForKeyFakeAssocArray "gvm_pkgset_name" "${fallback_go_pkgset}" "${defaults_hash[*]}"));
unset fallback_go_version;
unset fallback_go_pkgset;
defaults_resolved=true;
fi;
defaults_go_name="$(valueForKeyFakeAssocArray "gvm_go_name" "${defaults_hash[*]}")";
defaults_go_pkgset="$(valueForKeyFakeAssocArray "gvm_pkgset_name" "${defaults_hash[*]}")";
[[ "${GVM_DEBUG}" -eq 1 ]] && echo "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++";
[[ "${GVM_DEBUG}" -eq 1 ]] && echo "defaults_go_name => $defaults_go_name";
[[ "${GVM_DEBUG}" -eq 1 ]] && echo "defaults_go_pkgset => $defaults_go_pkgset";
[[ "${GVM_DEBUG}" -eq 1 ]] && echo "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++";
if [[ "${GVM_DEBUG}" -eq 1 ]]; then
echo "Resolved default go: ${defaults_go_name:-[EMPTY]}";
echo "Resolved default pkgset: ${defaults_go_pkgset:-[EMPTY]}";
fi;
dot_go_version="$(__gvmp_find_closest_dot_go_version)";
rslt=$?;
[[ "${GVM_DEBUG}" -eq 1 ]] && echo "---------------------------------------";
[[ "${GVM_DEBUG}" -eq 1 ]] && echo "dot_go_version => $dot_go_version";
[[ "${GVM_DEBUG}" -eq 1 ]] && echo "defaults_go_name => $defaults_go_name";
[[ "${GVM_DEBUG}" -eq 1 ]] && echo "---------------------------------------";
if [[ $rslt -eq 0 ]]; then
[[ "${GVM_DEBUG}" -eq 1 ]] && echo "Found dot_go_version: ${dot_go_version}";
local use_goversion="$(__gvmp_read_dot_go_version "${dot_go_version}")";
[[ "${GVM_DEBUG}" -eq 1 ]] && echo "Switching to: ${use_goversion}";
gvm use "${use_goversion}" || return 1;
unset use_goversion;
else
if [[ -n "${defaults_go_name}" ]]; then
[[ "${GVM_DEBUG}" -eq 1 ]] && echo "No .go-version found. Using system or default go.";
else
if [[ "${GVM_DEBUG}" -eq 1 ]]; then
echo "No fallback go version could be found.";
if [[ ! -d "$GVM_ROOT/archive/go" ]]; then
echo "$(locale_text_for_key "go_install_prompt")";
fi;
fi;
return 0;
fi;
fi;
dot_go_pkgset="$(__gvmp_find_closest_dot_go_pkgset)";
rslt=$?;
[[ "${GVM_DEBUG}" -eq 1 ]] && echo "--------------------------------";
[[ "${GVM_DEBUG}" -eq 1 ]] && echo "dot_go_pkgset => $dot_go_pkgset";
[[ "${GVM_DEBUG}" -eq 1 ]] && echo "--------------------------------";
if [[ $rslt -eq 0 ]]; then
[[ "${GVM_DEBUG}" -eq 1 ]] && echo "Found .go-pkgset: ${dot_go_pkgset}";
local use_gopkgset="$(__gvmp_read_dot_go_pkgset "${dot_go_pkgset}")";
[[ "${GVM_DEBUG}" -eq 1 ]] && echo "Switching to: ${use_gopkgset}";
gvm pkgset use "${use_gopkgset}" || return 1;
unset use_gopkgset;
else
if [[ -n "${defaults_go_pkgset}" ]]; then
[[ "${GVM_DEBUG}" -eq 1 ]] && echo "No .go-pkgset found. Using system or default pkgset.";
[[ "${GVM_DEBUG}" -eq 1 ]] && echo "---------- defaults_go_pkgset => $defaults_go_pkgset ----------";
else
[[ "${GVM_DEBUG}" -eq 1 ]] && echo "No fallback pkgset could be found.";
fi;
fi;
return 0
}the following is my .bashrc file
# ~/.bashrc
#
# 如果不是交互式shell,则不做任何事
[[ $- != *i* ]] && return
# ============================================
# 1. 核心别名与提示符 (最基础、应最先设置)
# ============================================
alias ls='ls --color=auto'
alias ll='ls -l --color=auto'
alias grep='grep --color=auto'
PS1='[\u@\h \W]\$ '
# ============================================
# 2. 确保一个安全的基础 PATH (关键修复步骤)
# ============================================
# 首先设置一个包含系统核心目录的默认PATH,防止其为空或被覆盖
export PATH="/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:$PATH"
# ============================================
# 3. 加载各种环境管理工具
# ============================================
# 自定义环境脚本 (原先可能导致问题的来源,现在加了检查)
if [[ -f "$HOME/.local/bin/env" ]]; then
source "$HOME/.local/bin/env"
fi
# Go Version Manager
if [[ -s "$HOME/.gvm/scripts/gvm" ]]; then
source "$HOME/.gvm/scripts/gvm"
fi
# Node Version Manager
export NVM_DIR="$HOME/.nvm"
if [[ -s "$NVM_DIR/nvm.sh" ]]; then
source "$NVM_DIR/nvm.sh" # 这会修改PATH
fi
if [[ -s "$NVM_DIR/bash_completion" ]]; then
source "$NVM_DIR/bash_completion"
fi
# Rust Cargo
if [[ -f "$HOME/.cargo/env" ]]; then
source "$HOME/.cargo/env" # 这会修改PATH
fi
# SDKMAN (根据其要求,保持在文件末尾)
export SDKMAN_DIR="$HOME/.sdkman"
if [[ -s "$SDKMAN_DIR/bin/sdkman-init.sh" ]]; then
source "$SDKMAN_DIR/bin/sdkman-init.sh"
fi
Metadata
Metadata
Assignees
Labels
No labels