【问题标题】:bash: [: too many arguments after rvm get stablebash: [: rvm 稳定后参数太多
【发布时间】:2017-06-06 04:01:26
【问题描述】:

正如标题所说,在 bash 中运行 rvm get stable 代码后,我开始收到错误 -bash: [: too many arguments。当我执行任何命令时会弹出此错误,但正确执行命令。例如,ls 和 cd 将按预期执行,但随后会打印出错误。

我正在运行 macOS Sierra。非常感谢任何帮助!

【问题讨论】:

  • 代码在哪里?你的PS1 设置是什么?
  • 当我做echo $PS1时,我得到\n \[\e[36;1m\]2017-06-05 21:14:11 \[\e[0;31m\]☆ \[\e[0;33m\] \[\e[0;35m\]\h \[\e[39m\]in \[\e[0;32m\]\w\n\[\e[36;1m\]○\[\e[0;32m\] \[\e[0;32m\]→\[\e[39m\]
  • 我们可以看看你的.bashrc吗?
  • 当然,只有 1 行,export PATH="$PATH:$HOME/.rvm/bin" # Add RVM to PATH for scripting
  • 添加到最后一条评论,即 ~ 中 .bashrc 中的代码,我转到 /etc/ 中的 bashrc 文件,它有:# System-wide .bashrc file for interactive bash(1) shells. if [ -z "$PS1" ]; then return fi PS1='\h:\W \u\$ ' # Make bash check its window size after a process completes shopt -s checkwinsize [ -r "/etc/bashrc_$TERM_PROGRAM" ] && . "/etc/bashrc_$TERM_PROGRAM"

标签: bash command-line scripting rvm


【解决方案1】:

运行rvm get stable 后我遇到了同样的问题。

由于rvm 需要在shell 会话中作为函数运行,因此不能从.bash_profile 或.bashrc 中删除[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" 行。

在我的环境中,原因是旧安装的 bash-it 和 rvm 之间存在冲突。如果您使用 bash-it 并遇到此问题,这可能会有所帮助。

我采取了以下步骤:

  1. 备份了我的.bash_profile(如果你有.bashrc,你可能也想备份它)。
  2. 运行bash-it 的卸载脚本(请参阅上面链接中的说明)并删除~/.bash-it 文件夹。
  3. 重新安装bash-it。
  4. 根据我在第 1 步创建的 .bash_profile 备份添加到 .bash_profile 缺少的内容。
  5. 重新启用了我需要的 bash-it 别名、补全和插件。

当我打开一个新的 shell 时,我停止接收错误,rvm 开始正常工作。

【讨论】:

    【解决方案2】:

    对于遇到此问题的任何人,我可以通过从 ~/.profile 和 ~/.bash_profile 中删除以下代码行来阻止错误消息出现:

    [[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a shell session *as a function*

    这是通过更新 rvm 添加的,删除这些行后仍然有效。

    更新:这停止了错误,但将我的 ruby​​ 版本从 2.2 向后弹出到 2.0

    【讨论】:

      猜你喜欢
      • 2013-04-18
      • 2011-09-30
      • 2014-06-02
      • 2013-04-16
      • 2021-07-11
      • 1970-01-01
      • 2015-04-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多