2016-04-29 2 views
0

Я начинаю в bash Я не могу понять, что не так с этим кодом.синтаксическая ошибка около неожиданного токена `fi '

#!/bin/bash 

j=0 
k=1 

for i in $1 
do 
    echo "tile-"+$j +"-" +"$k" 
    (($j=$j+1)) 
    if [ "$j" == "6" ] then 
     $j=0 
     (($k=$k+1)) 
    fi 
done 
+2

Вы упускаете '' или новой строки перед 'then'. –

+1

... и я полагаю, что '$ j = 0' должно быть' j = 0'. Кроме того, вы можете избавиться от '' '' '' '' (()) '. –

+0

yup, теперь его рабочая благодарность за быстрый ответ :) –

ответ

1

Так же, как и fordo, if и then два разных (хотя и связаны) конструкции и должны быть отделены друг от друга команды терминатора, либо ; или линия подачи:

if [ "$j" == "6" ]; then 
    [...] 
fi 

if [ "$j" == "6" ] 
then 
    [...] 
fi