# bash Programierung syntax error: unexpected end of file



## Gudy (24. September 2009)

Hi,
ich habe mir ein kleines, eins meiner ersten Bash Programme zum automatisieren gebastelt, aber so recht will es noch nicht :/

Zeile 1 bis 5 holt eine Datei und wenn in dieser eine 1 steht, soll Zeile 16 bis 23 ausgeführt werden, ansonsten Zeile 25.

Ich bekomme dort aber immer ein line 27: syntax error: unexpected end of file

Wenn ich aber Zeile 16 bis 22 löschen funktioniert es, weiss jemand wo der Denkfehler ist?


```
1.   #!/bin/bash
2.   SERVER=re.mote.host #Server definieren
3.   ftpUSER=iUSER
4.   ftpPASS=iPASSWORD
5.   checktest=NULL #Variable setzen
6.    /usr/bin/ftp -n << eoGetCheck
7.       open $SERVER
8.       user $ftpUSER $ftpPASS
9.       get check
10.    close
11.    quit
12.  eoGetCheck

13.  #Pruefen und ausfueren oder abbrechen
14.  checktest=$(cat check) #aus der zuvor geholten Datei den Inhalt auslesen

15.  if [ "$checktest" = "1" ]; then
16.    /usr/bin/ftp -n << eoftp
17.    open $SERVER
18.    user $ftpUSER $ftpPASS
19.    put 4ftp
20.    close
21.    quit
22.    eoftp
23.    echo "iTRUE"
24.  else
25.   echo "iFAIL"
26. fi
```


----------



## Enumerator (24. September 2009)

'n Abend!


Gudy hat gesagt.:


> ```
> 15.  if [ "$checktest" = "1" ]; then
> 16.    /usr/bin/ftp -n << eoftp
> 17.    open $SERVER
> ...


Heredocs müssen am Anfang der Zeile beendet werden...

```
15.  if [ "$checktest" = "1" ]; then
16.    /usr/bin/ftp -n << eoftp
17.    open $SERVER
18.    user $ftpUSER $ftpPASS
19.    put 4ftp
20.    close
21.    quit
22.  eoftp
23.    echo "iTRUE"
24.  else
25.    echo "iFAIL"
26.  fi
```

Gruß
Enum


----------



## Gudy (24. September 2009)

Die Lösung lag so nah, vielen Dank.

gibt es sonst noch etwas was ich eventuell anders machen sollte?


----------



## Enumerator (24. September 2009)

Hm, auf den ersten Blick nicht viel.
Außer Parameterübergabe und ein paar Abkürzungen vielleicht...
	
	
	



```
lenny:~$ echo 1 > test
lenny:~$ if [ "`cat test`" = "1" ]; then echo "yep"; else echo "nope"; fi
yep
lenny:~$
```
Was soll das Skript denn im finalen Zustand alles können und tun?

Gruß
Enum


----------



## Gudy (24. September 2009)

Ist einfach nur ein Test, gibt also nix was es mal wirklich können soll.


So dann kommt jetzt der nächste Schritt, mal sehen wie weit in dem Zusammenhang noch etwas mit der Datei ~/.netrc gemacht werden kann.


we will see


----------



## Enumerator (24. September 2009)

Mal am Rande:
Du wohnst in Bielefeld?
Gehörst du etwa auch zu IHNEN?
Bielefeld gibt es gar nicht!


----------



## Gudy (24. September 2009)

genau, würde aus bielefed kommen, wenn es uns geben würde


----------

