2016-07-30 6 views
0

私のためにブランチを切り替えるための小さなスクリプトを書こうとしています。私は長い間、一度だけbashで書いたことがあります。次のコードでは、ifelifはスキップされ、$1と入力しても、常にelseにスキップされます。私は様々な例を見て、それはすべきではありません。Bashの制御フローは何も関係なくスキップする

#!/bin/bash 

if [ "$1 " == "-p" ] 
    then 
     cd ui; 
     git checkout p_4.1; 
     cd ../services; 
     git checkout p_4.1; 
     cd ../application; 
     git checkout p_4.1; 
     cd ..; 
elif [ "$1 " == "-b" ] 
    then 
     cd ui; 
     git checkout b_.1; 
     cd ../services; 
     git checkout b_.1; 
     cd ../application; 
     git checkout b_.1; 
     cd ..; 
elif [ "$1 " == "-g" ] 
    then 
     cd ui; 
     git checkout g_.1; 
     cd ../services; 
     git checkout g_.1; 
     cd ../application; 
     git checkout g_.1; 
     cd ..; 
elif [ "$1 " == "-j" ] 
    then 
     cd ui; 
     git checkout j_.1; 
     cd ../services; 
     git checkout j_.1; 
     cd ../application; 
     git checkout j_.1; 
     cd ..; 
else 
    echo "No Command Known!" 
fi 

なぜそれが機能していないのかわかりません。

+0

'case $ 1 in ...'や 'getopt'や' getopts'を見たいかもしれません。 –

答えて

4

二重引用符内のスペースは重要であり、すべて"$1 "は、"$1"(後続スペースなし)にする必要があります。

1

$ 1の後にスペースがあるようです。私はそれがあなたの問題だと信じています。

関連する問題