当前位置: 首页 > news >正文

安装gvm后普通用户模式下无法使用cd切换目录

安装gvm后普通用户模式下无法使用cd切换目录

今天装完gvm后发现无法使用cd来切换目录了。。。
1.使用type cd命令发现cd命令被定义为了函数

usr@usr-pc:~$ 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
}

正常情况下使用cd命令应该输出如下结果:在这里插入图片描述
2.因为cd 被定义为函数,故可通过 unset 删除该函数

unset -f cd  # 删除函数定义,恢复内建命令 

然后cd就可以正常使用了。

相关文章:

  • 微信小程序开发:开发实践
  • Table as Thought论文精读
  • Qt5 Mac系统检查休眠
  • AI:机器学习模型 - 分类
  • Open-Sora:开源AI视频生成的新星
  • 计算机硬件
  • 我叕更新了~
  • 透明的卡组收费模式IC++
  • STM32单片机入门学习——第6节: [3-2] LED闪烁LED流水灯蜂鸣器
  • go游戏后端开发20:房间消息推送处理
  • Java基础 4.3
  • Linux文件属性
  • hanzi-writer-miniprogram真机显示不出来Path2D问题已解决(真机能显示了!)
  • UE5Actor模块源码深度剖析:从核心架构到实践应用
  • webrtc 本地运行的详细操作步骤 1
  • LoRa模块通信距离优化:如何实现低功耗覆盖30公里无线传输要求
  • 基于lora的llama2二次预训练
  • 力扣算法ing(47 / 100)
  • 使用ssh连接上开发板
  • Java基础:面向对象进阶(二)