Macos bash脚本mv命令不工作

Macos bash脚本mv命令不工作,macos,bash,mv,Macos,Bash,Mv,我正在尝试编写一个脚本,在登录OSX Lion时重命名一个文件 以下是我目前的脚本: #!/bin/bash if [ -f /Users/$1/Library/Google/GoogleSoftwareUpdate/GoogleSoftwareUpdate.bundle/Contents/MacOS/ksadmin ]; then mv ~/Library/Google/GoogleSoftwareUpdate/GoogleSoftwareUpdate.bundle/Contents/

我正在尝试编写一个脚本,在登录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”文件,因为计算机显示“Successful”。我还手动重命名了文件,注销,重新登录,计算机显示“未成功”

问题是脚本没有将“ksadmin”重命名为“ksadmin1”。我写给司令部的信写好了吗

任何想法都很好


Morgan

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

多亏了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

您可以在mv命令末尾添加以下内容:
2>&1>1/tmp/mverror
,然后检查它是否有任何问题。甚至可以用a-v来运行mv,这样你就可以确定它是真的executed@Miquel我试着同时执行这两个命令,但两个命令似乎都不起作用。在/tmp/目录中没有创建任何文件,并且没有任何东西提醒我该文件已被移动。@MorganR:如果没有创建任何文件,则它不会执行该命令。你应该在那里有一个文件,即使它可能是空的。。。然后mv根本就没有运行。这里是Longshot,但您能用/bin/mv替换mv吗?以防万一,这是一个用
/Users/$1/
替换
~
的路径问题,那么?