我有一个使用shell脚本的应用程序在编译期间执行某些操作,我正在尝试了解该脚本究竟是做什么的,因为我收到编译错误而无法运行源代码。
如果有人可以帮助我并解释下面的脚本做什么
#!/bin/bash
echo BUILD_ROOT = "${BUILD_ROOT}"
p=`echo "${BUILD_ROOT}" | sed -ne 's/.*\(^\/.*\/DerivedData\).*/\1/p'`
echo "//${BUILD_ROOT}" > ${SRCROOT}/info.h
cat "${p}/../info.h" >> ${SRCROOT}/info.h
我在编译期间遇到以下错误
BUILD_ROOT = /工作/ XXXXXXX / XXXXX / testTarget / DerivedData / testTarget /编译/产品 cat:/Working/XXXXXX/XXXXXXX/testTarget/DerivedData/../info.h:没有这样的 文件或目录
答案 0 :(得分:1)
这个脚本没有多大意义。你有什么希望呢?我会按行分解:
BUILD_ROOT
的值。~/Library/Developer/Xcode/DerivedData/<YOUR_APP>-XXXXX/...
作为其BUILD_ROOT
变量。这行代码在变量p
中存储该文件夹的完整路径。info.h
的文件,其值为BUILD_ROOT
。DerivedData
上方的文件夹并打印info.h
- 的值,该值实际上并不存在,从而导致脚本崩溃 - 并将其附加到第3行创建的info.h
。