【问题标题】:Syntax error when running RVM function运行 RVM 函数时出现语法错误
【发布时间】:2011-11-19 19:16:56
【问题描述】:

首先,我在安装了 xCode 4 的 mac osx 10.7.1 上运行 bash 3.2.48。

我已经下载了官方文档中指定的 RVM,但是当我这样做时

[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"

我收到一个错误

-bash: /Users/kevin/.rvm/scripts/rvm: line 28: syntax error near unexpected token `done'
-bash: /Users/kevin/.rvm/scripts/rvm: line 28: `  done'

我在 Google、rvm github 问题跟踪器和 stackoverflow 上进行了搜索,但我没有得到任何关于类似问题的信息或任何帮助我找到解决方案的信息。

似乎没有人在安装 RVM 1.8.3 时遇到这样的问题,所以我猜当我在我的 mac 上安装时出了点问题。

这是脚本的相应部分。

#!/usr/bin/env bash

# rvm : Ruby enVironment Manager
# https://rvm.beginrescueend.com
# https://github.com/wayneeseguin/rvm

# Is RVM loaded as a shell function already?

export HOME="${HOME%%+(\/)}" # Remove trailing slashes if they exist on HOME

if (( ${rvm_ignore_rvmrc:=0} == 0 ))
then
  for rvmrc in /etc/rvmrc "$HOME/.rvmrc"
  do
    if [[ -f "$rvmrc" ]]
    then
      if \grep '^\s*rvm .*$' "$rvmrc" >/dev/null 2>&1
      then
        printf "\nError:
        $rvmrc is for rvm settings only.
        rvm CLI may NOT be called from within $rvmrc.
        Skipping the loading of $rvmrc"
        return 1
      else
        source "$rvmrc"
      fi
    fi
  done
fi

错误在done 上触发,就在最后一个if 之前

任何帮助将不胜感激。

编辑:我发现了问题,我把别名拼错为fi。我刚刚重命名它并且它工作了。

感谢您的帮助。抱歉这个无用的问题。

【问题讨论】:

  • 也许如果您发布了包含错误的脚本,有人可以帮助您。

标签: ruby installation rvm


【解决方案1】:

我相信你不应该输入它,而是将它添加到你的 ~/.bash_profile 中,至少我以前在 linux 上是这样做的,你能指出你从哪里阅读安装步骤吗?

【讨论】:

  • 我已经将它添加到我的个人资料中,但它不起作用。不同之处在于,如果我手动执行,它只会为当前会话加载 rvm。
【解决方案2】:

这是正确的,那不是在命令行中运行的,它在你的 .bash_profile 或 .bashrc 中(带有相应的

如果 [ -f "$HOME/.bashrc" ];然后 源 $HOME/.bashrc 菲

在您的 .bash_profile 中)

【讨论】:

  • 我也使用从 Snow Leopard 迁移而来的 OS X Lion。再说一次,我这里也有 Debian、Ubuntu、CentOS、OpenSUSE 和 FreeBSD。
  • 好的,但是就像我说的那样,它位于底部的 .bash_profile 中,并且我已经获取了 .bashrc(在加载 rvm 之前),它本身就是我的别名的来源。当我打开一个新的 shell 会话时,它显示完全相同的错误。
  • 尝试将其更改为for rvmrc in {/etc/rvmrc,$HOME/.rvmrc}
  • 好的,如果你的 bash 端给你带来了问题,但 zsh 没有,这意味着你的 bash 端被某种方式污染了。 sudo rm -rf /etc/rvmrc /etc/profile.d/rvm.sh /usr/local/rvm /usr/local/bin/rvm $HOME/.rvm $HOME/.rvmrc 不要 su 到 root 并执行此操作,就像我向您展示的那样。使用须藤。然后确保在 .bash_profile 和/或 .bashrc 中注释掉 RVM 加载行。然后完全注销您的用户。现在,再次尝试安装。
  • 谢谢,但它也不起作用,我已经完全希望你写了。打开终端时,我仍然收到相同的语法错误。我想知道这是否不是因为我的 .bash 文件中的错误,就在加载 rvm 的行之前。会检查的。
【解决方案3】:

所以我决定切换到 zsh 有几个原因,它除了将行放入 zshrc 之外什么也没做。但无论如何我都会尝试找出问题所在。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-09
    • 1970-01-01
    相关资源
    最近更新 更多