2013-05-24 2 views
0

Это мой скрипт ... я получаю эту ошибку ниже. Я подозреваю, что второй, если еще не так, но unble, чтобы понять это ..Shell if else inested loop error

read -p "Do you wish to continue the merge session? (y/n) " RESP 
if [ "$RESP" = "y" ]; then 
    co_repo=`echo $target_url | cut -d "/" -f 7` 
    co_workspace="svn_promote_$co_repo" 
    echo "$co_workspace ................................................." 
    if [-d "$co_workspace" ] then; 
     echo -e "Creating target workspace $co_workspace" 
     echo -e "" 
     mkdir $co_workspace 
     echo -e "Checking out $target_url .." 
     svn co $target_url $co_workspace 
    else 
     echo -e "Target workspace exists. Updating ..." 
     svn update $co_workspace 
    fi 
else 
    echo "Exiting promote session .." 
fi 

Ошибка:

monday_try.sh: line 44: syntax error near unexpected token `else' 
monday_try.sh: line 44: `     else' 

ответ

3

Запятой идет перед темthen, а не после него.

1

Что говорит @Wumpus, плюс

if [-d "$co_workspace" ] 

необходим пробел после [:

if [ -d "$co_workspace" ] 
+1

@iaav, помните, '[' это команда * *, помогает помнить, что должно быть окруженный пробелами –

+0

Еще более ясным является использование 'test' и запись:' if test -d ... ' –