2016-07-30 2 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마다 공백이있는 것 같습니다. 나는 그것이 당신의 문제라고 믿습니다.

관련 문제