Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos 在Mac OS X上复制和重命名文件的脚本失败_Macos_Bash_Command Line Interface_Provisioning Profile - Fatal编程技术网

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

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

我遵循了这个问题:并使用答案中提供的脚本尝试将.mobileprovision文件复制到目录中,唯一的区别是我使用grep替换了mParse依赖项,正如此链接中的建议:

但是,当我运行此脚本时,会出现以下错误:

$ 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
。源配置文件是否与脚本位于同一目录中?对不起,我只是假装而已这对我来说是一个“无聊”的时刻:/