2014-11-12 2 views
0

Что не так с моим простым сценарием if/then/else bash?Как я могу исправить этот bash, если/then/else скрипт?

if [ "$C" = "dev" ];then 
    export PREFIX=/home/bubu 
    export SERVER=localhost:2112 
elif [ "$C" = "test" ] 
    export PREFIX=/server/node 
    export SERVER=e.foo.com:44033 
else 
    export PREFIX=/server/node 
    export SERVER=f.foo.com:44033 
fi 

./foo.sh: line 9: syntax error near unexpected token `else' 
./foo.sh: line 9: `else' 
+6

'elif ...; то 'Вам не хватает' then' –

ответ

3

Должен быть:

elif [ "$C" = "test" ]; then 
+0

спасибо. я ненавижу баш! –

+0

Я рассматриваю это как отношения любви/ненависти, написания сценариев bash. – mattias

+1

@PepsterK., Почему? Оставьте синтаксис на любом языке, и вы получите результаты, отличные от ожидаемого. –

0

А "то" не хватает после Элифа заявления:

elif [ "$C" = "test" ]; then 
2

Я хотел бы предложить фиксируя его с сазом:

case "$C" in 
    dev) export PREFIX=/home/bubu SERVER=localhost:2112;; 
    test) export PREFIX=/server/node SERVER=e.foo.com:44033;; 
    *) export PREFIX=/server/node SERVER=f.foo.com:44033;; 
esac 
+1

Это действительно намного более чистый с аргументом case, чем с серией условных обозначений. –

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