sh Skript funktioniert nicht

Status
Für weitere Antworten geschlossen.

rt34

Benutzer
Mitglied seit
31. Okt 2014
Beiträge
9
Punkte für Reaktionen
0
Punkte
1
Hallo,

wir haben eine RS814 mit DSM 5.0-4493 und ich will versuchen das TimeBackup auf verschiedene USB-Festplatten (je nach dem welche einsteckt ist) per Skript zu steuern.
Anfängliche Versuche scheitern daran, dass if und then nicht funktionieren.
Es kommt der Fehler: syntax error: unexpected end of file (expecting "then")
Nach zahlreichen Versuchen komme ich nicht weiter...

Das Skript habe ich mit Notepad++ erstellt:
Rich (BBCode):
#!/bin/sh
#
if  [1 -eq 1] then
	echo "nex1"
fi
#sh

Egal wie ich die if Abfrage gestalte, das Resultat bleibt das Selbe:

Putty:
Rich (BBCode):
SRV-NAS> sh /volume1/intern/backup9.sh
/volume1/intern/backup9.sh: line 6: syntax error: unexpected end of file (expecting "then")
SRV-NAS>

Was mache ich falsch?

Besten Dank schon mal an die Helfer!
 

rt34

Benutzer
Mitglied seit
31. Okt 2014
Beiträge
9
Punkte für Reaktionen
0
Punkte
1
Rich (BBCode):
#!/bin/sh
#
if [ 1 -eq 1 ]; then 
	echo "nex1"
fi
#sh

Rich (BBCode):
SRV-NAS> sh /volume1/intern/backup9.sh
/volume1/intern/backup9.sh: line 6: syntax error: unexpected end of file (expecting "fi")
 

Benares

Benutzer
Sehr erfahren
Mitglied seit
27. Sep 2008
Beiträge
14.064
Punkte für Reaktionen
3.882
Punkte
488
Beachte auch das Leezeichen nach [ und vor ]. Ansonsten stimmt es so
Code:
#!/bin/sh
#
if [ 1 -eq 1 ]; then
  echo "nex1"
fi
Code:
root@DS212:~# ./backup9.sh
nex1
 
Zuletzt bearbeitet:

rt34

Benutzer
Mitglied seit
31. Okt 2014
Beiträge
9
Punkte für Reaktionen
0
Punkte
1
Danke für die schnelle Hilfe!

Bei mir kommt mit deinem Code
Rich (BBCode):
SRV-NAS> sh /volume1/intern/backup9.sh
: not foundtern/backup9.sh: line 5:
nex1
 

Benares

Benutzer
Sehr erfahren
Mitglied seit
27. Sep 2008
Beiträge
14.064
Punkte für Reaktionen
3.882
Punkte
488
Öffne die Datei mal mit dem Editor vi. Evtl. ist da irgendwo noch ein Steuerzeichen drin.
 

rt34

Benutzer
Mitglied seit
31. Okt 2014
Beiträge
9
Punkte für Reaktionen
0
Punkte
1
Tatsache da sind ^M drin.
Ok, danke!

Jetzt kann ich testen wie ich NP++ einstellen muss.
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
in Notepad++ kannst du als Zeilenendzeichen Unix/Linux einstellen und es sollte gut sein
 

Benares

Benutzer
Sehr erfahren
Mitglied seit
27. Sep 2008
Beiträge
14.064
Punkte für Reaktionen
3.882
Punkte
488
Das such ich auch immer. Schau mal unter: Bearbeiten, "Format Zeilenende", "Konvertiere zu UNIX (LF)"
Aber besser, du arbeitest dich ein wenig in "vi" ein.
 

rt34

Benutzer
Mitglied seit
31. Okt 2014
Beiträge
9
Punkte für Reaktionen
0
Punkte
1
Nachdem ich die vi-Datei im NP++ geöffnet hatte, hat der das automatisch eingestellt.
Hab nämlich auch nicht gefunden.

vi ist für mich nur was für IT'ler die das öfter machen. Das lohnt sich für mich nicht, mich da einzuarbeiten, da ich mit Unix-Systemen bis jetzt nichts zu tun habe und nur die DSM das braucht.
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat