0

我正在尝试编写一个脚本,在登录 OSX Lion 时重命名文件。

到目前为止,这是我的脚本:

#!/bin/bash
if [ -f /Users/$1/Library/Google/GoogleSoftwareUpdate/GoogleSoftwareUpdate.bundle/Contents/MacOS/ksadmin ]; then
    mv ~/Library/Google/GoogleSoftwareUpdate/GoogleSoftwareUpdate.bundle/Contents/MacOS/ksadmin ~/Library/Google/GoogleSoftwareUpdate/GoogleSoftwareUpdate.bundle/Contents/MacOS/ksadmin1
    say "Successful"
else
    say "Unsuccessful"
fi

我创建了一个执行脚本的 LoginHook。我知道它在登录时执行,因为计算机在找到“ksadmin”文件时会说话。我知道它找到了“ksadmin”文件,因为计算机显示“成功”。我还手动重命名了文件,注销,重新登录,计算机显示“不成功”。

问题是脚本没有将“ksadmin”重命名为“ksadmin1”。我写的命令正确吗?

任何想法都会很棒。

摩根

4

2 回答 2

0

感谢 cdarke、Miquel 和 mVChr 的帮助。问题的解决方法如下:

#!/bin/bash
if [ -f /Users/$1/Library/Google/GoogleSoftwareUpdate/GoogleSoftwareUpdate.bundle/Contents/MacOS/ksadmin ]; then
    mv /Users/$1/Library/Google/GoogleSoftwareUpdate/GoogleSoftwareUpdate.bundle/Contents/MacOS/ksadmin /Users/$1/Library/Google/GoogleSoftwareUpdate/GoogleSoftwareUpdate.bundle/Contents/MacOS/ksadmin1
    say "Successful"
else
    say "Unsuccessful"
fi

我用于部署的版本:

#!/bin/bash
    if [ -f /Users/$1/Library/Google/GoogleSoftwareUpdate/GoogleSoftwareUpdate.bundle/Contents/MacOS/ksadmin ]; then
        mv /Users/$1/Library/Google/GoogleSoftwareUpdate/GoogleSoftwareUpdate.bundle/Contents/MacOS/ksadmin /Users/$1/Library/Google/GoogleSoftwareUpdate/GoogleSoftwareUpdate.bundle/Contents/MacOS/ksadmin1
    fi
于 2012-06-14T08:32:49.083 回答
0

ksadmin 的权限是什么?如果它对您的登录 ID 是只读的并且 ksadmin1 已经存在,那么您可能需要一个 mv -f。此外,您可能希望将“~”扩展为绝对路径。不确定您的脚本何时执行,但也许 bash 还不能扩展它。

于 2012-06-13T18:13:59.610 回答