2016-07-30 2 views
0

Я пытаюсь написать небольшой скрипт для переключения ветвей для меня. Я только когда-то писал в bash когда-то. В следующем коде if s и elif s пропускаются, и независимо от того, что я вводил как $1, он всегда пропускает else. Ive посмотрел на различные примеры, и ничего не работает, хотя это должно быть.Управление потоком 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. Я считаю, что это твоя проблема.

Смежные вопросы