我正在尝试在XCode中设置一个自定义脚本构建阶段,这将允许我验证项目中的所有json。
我的脚本是:
source ~/.bashrc
eval "cd '$PROJECT_DIR'"
find . -name \*.json -exec jsonlint -q {} \;
问题是,如果出现故障,它将进入下一个文件并最终以状态0退出...我正在寻找一种方法使-exec在遇到非零状态时停止。 / p>
我以为我可以通过手动循环文件来处理这个问题:
for f in $(find . -name *.json); do ... done;
然而,这些json文件的路径包含空格,所以当我尝试这样做时,$ f甚至“$ f”显示为“/ Users / me / path”,“with”,“space /123.json“,而不是实际的路径”/ Users / me / path with spaces / 123.json“
我在网上看到的所有内容都说“当你加倍引用f时,它会自动处理逃避的空间!” - 在这种情况下不正确!
答案 0 :(得分:0)
您可以使用while循环:
find . -name '*.json' -print0 | while IFS= read -r -d '' file
do
jsonlint -q "$file" || echo "Oh oh! " 1>&2
done