2016-04-29 13 views
0

Ich bin Anfänger in Bash Ich bin nicht in der Lage herauszufinden, was mit diesem Code falsch ist.Syntax Fehler in der Nähe von unerwarteten Token `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

Sie verpassen a ';' oder Newline vor 'then'. –

+1

... und ich denke "$ j = 0" sollte "j = 0" sein. Außerdem können Sie das '$' inside '(())' loswerden. –

+0

yup, jetzt funktioniert es Vielen Dank für die schnelle Antwort :) –

Antwort

1

Wie for und do, if und then sind zwei verschiedene (wenn auch verwandten) Konstrukte und sollte von einem Befehlsabschluss getrennt werden, entweder ; oder ein Zeilenvorschub:

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

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