在Mac OS X上复制和重命名文件的脚本失败

时间:2015-04-28 14:11:27

标签: macos bash command-line-interface provisioning-profile

我遵循了这个问题:Provide xcodebuild with .mobileprovision file并使用答案中提供的脚本尝试将.mobileprovision文件复制到目录中,唯一的区别是我使用grep替换了mParse依赖项,根据此建议链接:https://gist.github.com/benvium/2568707

但是,当我运行此脚本时,我收到以下错误:

$ 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"`

1 个答案:

答案 0 :(得分:3)

cp中使用Bash命令时,您需要提供文件的完整路径。诸如~/myFolder之类的别名将无效。您需要提供完整路径,例如/Users/Me/myFolder