编译项目时,当系统用户名匹配时,此脚本应将Xcode项目的Build版本增加1。请记住,这些只是脚本中的Unix命令(不是Applescript,Python或Perl),在Target-> Build Phases->在Xcode中运行脚本。
我在终端完成了“echo $ USER”。这会很好地打印登录用户的用户名,并且它与我在第二个代码块中的条件语句中放置的字符串相同。
第一个代码块有效。第二个,它添加了条件语句,但没有。
#!/bin/bash
buildNumber=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "$INFOPLIST_FILE")
buildNumber=$(($buildNumber + 1))
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $buildNumber" "$INFOPLIST_FILE"
#!/bin/bash
username=$USER
if [ username == "erik" ]; then
buildNumber=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "$INFOPLIST_FILE")
buildNumber=$(($buildNumber + 1))
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $buildNumber" "$INFOPLIST_FILE"
fi
语法问题:
解析$ USER(区分大小写)
左边的分号在if语句中关闭括号后
然后声明在同一行,如同声明
答案 0 :(得分:4)
您可以在日志导航器中看到脚本日志,您的脚本我遇到了以下问题:
我认为默认比较区分大小写,为了使其不敏感,您可以在比较之前将用户名更改为大写/小写:
if [ `echo $USER | tr [:lower:] [:upper:]` = "USERNAME" ]; then
echo "Got user check"
fi
正如您所看到的,我将$ USER移至条件以避免额外的var使用和脚本失败。
if-then
块处的分号是正常的,请查看man页面。如果您更方便阅读,then
字词可能会移到新行。