sh Skript funktioniert nicht

  • Ab sofort steht euch hier im Forum die neue Add-on Verwaltung zur Verfügung – eine zentrale Plattform für alles rund um Erweiterungen und Add-ons für den DSM.

    Damit haben wir einen Ort, an dem Lösungen von Nutzern mit der Community geteilt werden können. Über die Team Funktion können Projekte auch gemeinsam gepflegt werden.

    Was die Add-on Verwaltung kann und wie es funktioniert findet Ihr hier

    Hier geht es zu den Add-ons

Status
Für weitere Antworten geschlossen.

rt34

Benutzer
Registriert
31. Okt. 2014
Beiträge
9
Reaktionspunkte
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!
 
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")
 
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:
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
 
Öffne die Datei mal mit dem Editor vi. Evtl. ist da irgendwo noch ein Steuerzeichen drin.
 
Tatsache da sind ^M drin.
Ok, danke!

Jetzt kann ich testen wie ich NP++ einstellen muss.
 
in Notepad++ kannst du als Zeilenendzeichen Unix/Linux einstellen und es sollte gut sein
 
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.
 
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