bash:brew命令没有显示任何输出

时间:2018-04-20 17:19:07

标签: shell terminal homebrew macos-sierra

我不小心将>字符放在brew命令(Homebrew)之前,之后,我不确定brew命令是否正在执行,因为它们没有输出任何内容。

我重新启动了终端和计算机,但它会继续保持不变。

Mac OS X Sierra

1 个答案:

答案 0 :(得分:0)

简答:

运行以下命令以恢复brew

$ git -C /usr/local/Homebrew reset --hard origin/master

答案很长:

正如@that other guy指出的那样,您使用重定向到brew创建了一个空文件。

$ >brew some command

相当于:

$ some command > brew

这意味着您运行some command并将其输出发送到名为brew的文件中。如果该命令失败而没有输出任何内容(除了错误),它会将其变为空文件。

避免现有文件出现此问题的一种方法是使用set -C

$ echo foo > myfile
$ echo bar > myfile
$ cat myfile
bar

$ set -C
$ echo foo > myfile
$ echo bar > myfile
bash: myfile: cannot overwrite existing file
$ cat myfile
foo

使用此设置,您必须先删除目标文件,然后重定向输出,或使用>|

$ echo bar > myfile
bas
$ echo bar >| myfile
$ cat myfile
bar

然而,这只是一种预防措施,所以一旦你覆盖了你的文件就太晚了。

要检索原始brew,请重置其git存储库(通常为/usr/local/Homebrew):

$ git -C /usr/local/Homebrew reset --hard origin/master