2016-04-27 9 views
0

アップルスクリプトを使って私のgit Bitbucketオンラインストレージを更新したい。これは、ターミナルで動作するコードですが、私がappleスクリプトを実行したときではありません。私はこのコードが動作しない理由を少し困惑していますアップルスクリプトを使ってgitリポジトリを更新する

 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" 

:アップルスクリプトに細工

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

。この問題で私を助けてくれますか?

答えて

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

私は使用を終了しました。コマンド間。私はあなたの私のライナーの道がさらに好きです。 – sanjihan

+0

'&& '演算子でコマンドを連結すると、最初のコマンドが失敗した場合でも、2番目のコマンドもスキップされるという利点があります。セミコロンは改行のようにコマンドセパレータとしてのみ機能します。それらは実行に影響を及ぼさないので、 'cd'のような重要なコマンドが失敗したとしても、その後のコマンドはまだ適用されますが、間違ったディレクトリにあります。別のオプションは、スクリプトの先頭に 'set -e'を置くことです。このコマンドは、後続のコマンドが失敗するとすぐに終了するようにbashに指示します。 Unixのシェルは、安全性や信頼性のような細部の細部が非常に早くて緩やかであるため、防御的にコードするのが最善です。 – foo

1

あなたの問題は、git addgit commitコマンドの前にcdコマンドを使用していると考えられます。あなたは2つのコマンドを連鎖させています。

関連する問題