2016-04-07 8 views
2

は私のbashスクリプトの全文です:なぜ私のBashスクリプト(OSX)はターミナルから実行されていますが、ダブルクリックされたのはなぜですか?ここで

GitC.sh

#!/bin/bash 

git add . 
git status 
echo “Are you sure you want to commit and push? y/n” 
read yn 
if [ “$yn”==“y” ]; 
    then 
    echo “Message:“ 
    read m 
    git commit -m “$m” 
    git push 
    sleep 5s 
else 
    git reset 
    sleep 5s 
fi 

私は、ファイルにchmod u+xを実行し、デフォルトの実行アプリケーション用の端子を選択し、私はそれをダブルクリックしたときにしています

justins-mbp:〜Schwaitz $ /Users/Swwaitz/Desktop/JustWas/GitC.sh;出口;

となり、プロセスは続行されません。ターミナルから./GitC.shコマンドを実行すると、完全に動作します。

思考?

+0

あなたは '.commandは必要ありません:あなたは、したがって、それはスクリプトと同じディレクトリに変更を確認する必要があり

/path/to/script.sh 

:あなたはこのようなスクリプトを呼び出した場合にも問題を引き起こします'接尾辞はファインダーでbashスクリプトを実行する? –

+0

おそらくカットアンドペーストの問題ですが、あなたの中かっこの見方は疑わしくなり、if文では "=="の前後に空白がありません(BTWでは、 "=="よりPOSIXに準拠する方が良いでしょう)。 –

答えて

1

スクリプトは現在の作業ディレクトリはスクリプトと同じである、と私はファインダーでダブルクリックして起動したときにそれはそうではないのですかなり確信していると仮定します。

dir="$(dirname "$0")" 
cd "$dir" 

... etc. 
+0

問題は、私のGitC.shファイルが私のgit repoと同じディレクトリにあることです。 – Schwaitz

+0

@kuuyそれは問題ありません。私の答えはそのような状況でうまくいくはずです。 – trojanfoe

関連する問題