2012-10-17 128 views
7

编译项目时,此脚本应在系统用户名匹配时将Xcode项目的构建版本增加1。请记住,这些只是在目标 - >构建阶段 - >在Xcode中运行脚本中的脚本(而不是Applescript,Python或Perl)中的Unix命令。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语句
然后在同一行语句if语句

回答

4

您可以在日志中看到脚本日志导航,用你的脚本我有以下问题:

enter image description here

我相信默认的比较是区分大小写的,以使其可以比较前更改用户名大/小写不敏感:

if [ `echo $USER | tr [:lower:] [:upper:]` = "USERNAME" ]; then 
echo "Got user check" 
fi 

正如您所看到的,我将$ USER移到了该条件以避免额外的var使用情况和脚本失败。

而分号if-then的分块是正常的事情,请检查man页面。 then单词可能会移动到新行,如果这样更方便阅读。

+0

太棒了!这完美的作品!谢谢你,先生。 – Glimpse

相关问题