我正在尝试编写一个在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”。我是否正确地写了命令?
任何想法都会很棒。
摩根
答案 0 :(得分:0)
ksadmin的权限是什么?如果它只读取你的登录ID并且ksadmin1已经存在,那么你可能需要一个mv -f。 此外,您可能希望将“〜”扩展为绝对路径。不确定你的脚本何时被执行但是bash还不能扩展它。
答案 1 :(得分: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