Macos 在Mac OS X上复制和重命名文件的脚本失败
我遵循了这个问题:并使用答案中提供的脚本尝试将.mobileprovision文件复制到目录中,唯一的区别是我使用grep替换了mParse依赖项,正如此链接中的建议: 但是,当我运行此脚本时,会出现以下错误:Macos 在Mac OS X上复制和重命名文件的脚本失败,macos,bash,command-line-interface,provisioning-profile,Macos,Bash,Command Line Interface,Provisioning Profile,我遵循了这个问题:并使用答案中提供的脚本尝试将.mobileprovision文件复制到目录中,唯一的区别是我使用grep替换了mParse依赖项,正如此链接中的建议: 但是,当我运行此脚本时,会出现以下错误: $ sh installMobileProvisionFile.sh BuilderTestNew.mobileprovision Found UUID 402a766e-bfc7-4f16-8ab6-a46a95361b00 copying to ~/Library/MobileDe
$ sh installMobileProvisionFile.sh BuilderTestNew.mobileprovision
Found UUID 402a766e-bfc7-4f16-8ab6-a46a95361b00
copying to ~/Library/MobileDevice/Provisioning Profiles/402a766e-bfc7-4f16-8ab6-a46a95361b00.mobileprovision..
cp: ~/Library/MobileDevice/Provisioning Profiles/402a766e-bfc7-4f16-8ab6-a46a95361b00.mobileprovision: No such file or directory
done
如果我只是运行脚本中自己执行的cp命令,替换上面值的变量,它就会正常工作,所以我不明白为什么在使用这个脚本时它会失败?顺便说一下,我在约塞米蒂
编辑:
以下是改编后的剧本:
if [ ! $# == 1 ]; then
echo "Usage: $0 (path/to/mobileprovision)"
exit
fi
mp=$1
uuid=`grep UUID -A1 -a ${mp}| grep -io "[-A-Z0-9]\{36\}"`
echo "Found UUID $uuid"
output="~/Library/MobileDevice/Provisioning Profiles/$uuid.mobileprovision"
echo "copying to $output.."
cp "${mp}" "$output"
echo "done"`
在
Bash
中使用cp
命令时,需要提供文件的完整路径。像~/myFolder
这样的别名不起作用。您需要提供一个完整路径,例如/Users/Me/myFolder
。您的cp似乎只传递了一个参数。我疯了吗?查看修改后的脚本肯定会有帮助。不,命令行参数通常会传递给cp命令,双引号似乎有问题,因为它们使mobileprovision文件成为路径的一部分。当您回显源变量和目标变量时,会看到什么?输出变量在那里~/Library/MobileDevice/Provisioning Profiles/402a766e-bfc7-4f16-8ab6-a46a95361b00。mobileprovision
,对于源变量,它按预期打印文件名BuilderTestNew.mobileprovision
。源配置文件是否与脚本位于同一目录中?对不起,我只是假装而已这对我来说是一个“无聊”的时刻:/