在运行脚本构建阶段,Xcode似乎正在修改bash脚本内的路径

在运行脚本构建阶段,Xcode似乎正在修改bash脚本内的路径,xcode,shell,Xcode,Shell,我有一个简单的脚本,如下所示: #/垃圾箱/垃圾箱 集合-eux install_folder=“${HOME}/Library/MobileDevice/Provisioning Profiles” mkdir-p“${install_folder}” 如果[[$?!=0]];然后 echo“无法创建目标目录:${install_folder}” 出口1 fi 如果我通过执行/my_script.sh从命令行运行此脚本,则一切都会按预期工作。但是,当我在运行脚本构建阶段从Xcode调用时,事

我有一个简单的脚本,如下所示:

#/垃圾箱/垃圾箱
集合-eux
install_folder=“${HOME}/Library/MobileDevice/Provisioning Profiles”
mkdir-p“${install_folder}”
如果[[$?!=0]];然后
echo“无法创建目标目录:${install_folder}”
出口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
文件夹中得到一个名为
Profiles
的文件夹,无论我在哪里运行命令,都会得到一个名为
Profiles
的文件夹。这就是我从命令行运行时发生的情况。但是,如果我从Xcode运行,我会在
MobileDevice
中得到一个名为
Provisioning\Profiles
的文件夹

我根本无法解释这种行为。这似乎完全违背了我所知道的关于shell脚本的一切


Xcode是如何影响这一点的?我怎样才能让它停止

和往常一样,诀窍在于意识到这件事比我想象的还要多。Xcode不仅在这个阶段运行这个脚本,它还设置了一个输出文件列表。然后,在运行脚本之后,它正在为这些用户创建路径。脚本的行为完全符合它应有的样子,只是额外的东西使它看起来好像被破坏了

经验教训:如果输出文件不存在,Xcode将为其创建一个文件夹