2016-07-30 27 views
0

我想寫一個小腳本來爲我切換分支。我只有很久以前才寫過bash。在下面的代碼中,跳過if s和elif s,無論我輸入的是$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之後都有一個空格。我相信這是你的問題。