由于某种原因,calc 总是变成交互式的(好像我指定了 -i,或者根本没有指定表达式)。我必须多次按 CTRL-C 才能退出。
~ calc 5+4
9
^C
[Abort level 1]
^C
[Abort level 2]
^C
[Abort level 3]
^C
ABORT
~
它在我的旧 Mac 上运行良好。我使用 brew 安装它(在两台机器上),重新安装 calc 不起作用。可能是什么原因?
编辑:我尝试启动一个干净的 bash shell,检查别名,并尝试-q -e
忽略环境和配置文件。但这些都无济于事。
~ type -a calc
calc is /usr/local/bin/calc
~ calc -q -e 5+4
不会改变行为。
~ env -i bash --noprofile --norc
bash-3.2$ calc 5+4
也没什么帮助。
~ ls -l /usr/local/bin/calc
lrwxr-xr-x 1 lafp admin 34 Feb 28 14:43 /usr/local/bin/calc -> ../Cellar/calc/2.12.7.1_1/bin/calc`
我确实发现了一些做帮助。切换到其他用户!(在本例中为 root)。
~ sudo su
root@... calc 5+4
9
root@...
答案1
选项1:
在 zsh 上,calc
是一个函数。你可以尝试使用/usr/local/bin/calc
$ which calc
calc () {
awk "BEGIN{ print $* }"
}
选项 2:尝试使用绝对路径运行命令。/usr/local/bin/calc 5+4
或\calc 5+4
。如果\calc
对您有用,则很可能您已为设置了别名calc
。
答案2
我想我已经明白了:问题出在 rvm。
在我的 .bash_profile 中[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a shell session *as a function*
即使启动新的 bash 或清除环境变量,它仍然保持加载状态,因为env -i
它不会清除函数,只会清除变量。
不用说,我以后会尽量避免使用 rvm...它注册了数百个函数。太可怕了。
谢谢大家的帮助!