2016-04-27 83 views
0

我想用苹果脚本更新我的git Bitbucket在线存储。这是在终端工作的代码,但不是当我运行苹果脚本。用苹果脚本更新git仓库

cd /Users/mainuser/Desktop/Projects git add -A 
git commit -m fromAppleScript 
git push 

雕琢成苹果脚本:

 say "updating backup" 
     do shell script "cd /Users/mainuser/Desktop/Projects git add -A" 
     do shell script "cd /Users/mainuser/Desktop/Projects git commit -m fromAppleScript" 
     do shell script "cd /Users/mainuser/Desktop/Projects git push" 

我有点不解,为什么这个代码不工作。你能帮我解决这个问题吗?

回答

1
do shell script "cd /Users/mainuser/Desktop/Projects && git add -A && git commit -m fromAppleScript && git push" 
+0

我结束了使用;在命令之间。我更喜欢你的班轮。 – sanjihan

+0

使用'&&'操作符链接命令具有如下优点:如果第一个命令失败,则第二个命令也会跳过。分号与命令分隔符一样,换行符也行;它们不会影响执行,所以即使像'cd'这样的重要命令失败,后续的命令仍然会被应用,但现在却出现在错误的目录中。另一种选择是在脚本的开始处放置set -e,如果_any_后续命令失败,则告诉bash立即退出。 Unix shell非常快速且松散,具有安全性和可靠性等细节,所以最好是防御性编码。 – foo

1

我相信您遇到的问题是您的git addgit commit命令之前的cd命令。你在一起链接两个命令。