运行此代码后,Mac无法启动

时间:2012-08-22 19:09:57

标签: macos shell terminal

我知道这有点偏离主题,但是因为我已经找到了我在这里谈论的代码所以我希望有人可以帮助我。

我正在处理POSTGRES错误并在此处阅读:Can not connect to local PostgreSQL一个答案,来自vvdpzz的答案,导致我在终端中运行该代码。 在那之后,我的mac停止工作,从那时起它不会重新启动,直到苹果徽标一直闪烁并切换到带有问号的文件夹。

我已经检查了curl执行的代码,它是以下内容:

    #!/bin/sh

BREW_POSTGRES_DIR=`brew info postgres | awk '{print $1"/bin"}' | grep "/postgresql/"`
LION_POSTGRES_DIR=`which postgres | xargs dirname`
LION_PSQL_DIR=`which psql | xargs dirname`

sudo mkdir -p $LION_POSTGRES_DIR/archive
sudo mkdir -p $LION_PSQL_DIR/archive

for i in `ls $BREW_POSTGRES_DIR`
do
    if [ -f $LION_POSTGRES_DIR/$i ] 
    then
        sudo mv $LION_POSTGRES_DIR/$i $LION_POSTGRES_DIR/archive/$i
        sudo ln -s $BREW_POSTGRES_DIR/$i $LION_POSTGRES_DIR/$i
    fi

    if [ -f $LION_PSQL_DIR/$i ] 
    then
        sudo mv $LION_PSQL_DIR/$i $LION_PSQL_DIR/archive/$i
        sudo ln -s $BREW_POSTGRES_DIR/$i $LION_PSQL_DIR/$i
    fi  
done

发生什么事了?我不是专家。我该怎么解决这个问题。我试图在启动时按下shift键以安全模式启动,但它不起作用。

1 个答案:

答案 0 :(得分:2)

这是一个很好的例子,说明为什么不运行脚本而不了解它们的作用。我的猜测是LION_PSQL_DIRLION_POSTGRES_DIR中的一个或两个都是空的,脚本最终会在根目录中移动。您应该能够通过以下步骤恢复系统:

  1. 通过将OS X安装光盘放入驱动器并在启动时按住 C 键来启动它。
  2. 从Utilities菜单中,选择Terminal
  3. 运行命令cd /Volumes
  4. 运行命令ls,该命令应显示与Mac硬盘驱动器名称对应的条目
  5. 运行命令cd "<name of your hard drive>"
  6. 运行命令ls。如果问题是从驱动器的根目录移动了,则会有一个archive条目,如果没有则停止,因为这不会解决您的问题。
  7. 运行命令cd archive进入存档目录
  8. 运行命令mv * ..将存档目录中的所有内容移回硬盘根目录
  9. 关闭终端
  10. 从“工具”菜单中运行“磁盘工具”,并使用驱动器上的修复权限。
  11. 重新启动计算机,希望它现在可以正常使用
  12. 永远不要再次运行这样的随机脚本。
  13. 第十步可能不是绝对必要的。我自己没有尝试过这些步骤,但它们应该非常接近正确。如果你在他们遇到任何错误时停下来发表评论,我会试着弄清楚如何继续。