【发布时间】:2020-03-13 01:19:03
【问题描述】:
我有一个如下所示的简单脚本:
#!/bin/sh
set -eux
install_folder="${HOME}/Library/MobileDevice/Provisioning Profiles"
mkdir -p "${install_folder}"
if [[ $? != 0 ]]; then
echo "Unable to create destination directory: ${install_folder}"
exit 1
fi
如果我通过执行./my_script.sh 从命令行运行此脚本,一切都会按预期工作。但是,当我在运行脚本构建阶段从 Xcode 调用时,事情就出错了。我目前通过在运行脚本构建阶段使用"${SRCROOT}/path/to/my_script.sh" 来调用它,但即使我直接复制并粘贴上面的代码也会出现同样的问题。
那么问题是什么?好吧,似乎 Xcode 导致创建了错误的文件夹。当我从命令行运行时,我在~/Library/MobileDevice/ 中得到了一个名为Provisioning Profiles 的文件夹,正如预期的那样。当我从 Xcode 运行时,该文件夹被命名为 Provisioning\ Profiles(\ 实际上是名称的一部分)。
但它变得更奇怪了。如果我将mkdir 行更改为mkdir -p $install_folder,那么我希望在MobileDevice 文件夹中获得一个名为Provisioning 的文件夹,并在我运行命令的任何位置获得一个名为Profiles 的文件夹。这就是我从命令行运行时发生的情况。但是,如果我从 Xcode 运行,我会在 MobileDevice 中得到一个文件夹 Profiles,但我也会得到一个名为 Provisioning\ Profiles 的文件夹。
我根本无法解释这种行为。这似乎与我(认为)对 shell 脚本的了解完全相反。
Xcode 对此有何影响?我如何让它停止?
【问题讨论】: