Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst Denkfehler - Syntaxfehler in Shell Script

Mitglied: killtec

killtec (Level 3) - Jetzt verbinden

13.03.2018, aktualisiert 09:27 Uhr, 263 Aufrufe, 6 Kommentare

Hallo,
ich habe folgendes Script:

01.
if ping -c1 10.0.4.1 ; then 
02.
        #Allels ok 
03.
else 
04.
        /etc/init.d/ipsec restart 
05.
fi
Nun bekomme ich folgenden Fehler:
01.
./tunnel.sh: line 3: syntax error: unexpected "else"
Ich sehe hier nur keinen Syntaxfehler, sieht ihn jemand von euch?

Ich will hier nur ganz simpel prüfen, ob eine IP vom Tunnel da ist und falls nicht, den Tunnel neu starten.

Gruß
Mitglied: colinardo
LÖSUNG 13.03.2018, aktualisiert um 11:10 Uhr
Servus @killtec ,
dein Problem ist das du keinen Befehl zwischen dem then und dem else hast .
Negier den Ping einfach mit einem Ausrufezeichen und du brauchst keinen Else Zweig der hier ja offensichtlich nicht gebraucht wird.
01.
#!/bin/sh 
02.
if ! ping -c1 10.0.4.1 >/dev/null ;then  
03.
    /etc/init.d/ipsec restart 
04.
fi
Oder alternativ geht auch
01.
#!/bin/sh 
02.
! ping -c1 10.0.4.1 >/dev/null &&  /etc/init.d/ipsec restart
Zweitens hast du keinen Shebang angegeben, das ist schlechter Stil denn dann könnte dein Skript einen anderen Interpreter nehmen als den den du eigentlich willst.

Siehe auch
https://unix.stackexchange.com/questions/133972/bash-syntax-error-when-e ...

Grüße Uwe
Bitte warten ..
Mitglied: Lochkartenstanzer
LÖSUNG 13.03.2018, aktualisiert um 10:08 Uhr
Moin,

würde ich auch sagen, daß da einfach unerwartet kein Befehl steht.

Entweder negieren, wie Uwe schon sagte oder einfach ein /bin/true statt "# Allels ok" hinschreiben.

lks
Bitte warten ..
Mitglied: killtec
13.03.2018 um 11:02 Uhr
Hi,
danke euch beiden
Hab die Kurzvariante genommen. Wegen der BASH: Den Eintrag musste ich raus lassen, scheint keine Bash zu sein.

Danke.
Bitte warten ..
Mitglied: colinardo
13.03.2018, aktualisiert um 11:10 Uhr
Zitat von killtec:
Wegen der BASH: Den Eintrag musste ich raus lassen, scheint keine Bash zu sein.
Dann lass sie dir mit echo $0 anzeigen.
How to determine the current shell I'm working on?
Nötig ist die Shebang nicht zwingend, es wird dann die Default Shell genommen, aber es gibt gute Gründe sie immer mit rein zu nehmen, gerade aus solchen Gründen wie du sie gerade erfährst, wenn sich plötzlich die Default Shell ändert etc..
Bitte warten ..
Mitglied: Lochkartenstanzer
13.03.2018 um 11:08 Uhr
Zitat von killtec:

Wegen der BASH: Den Eintrag musste ich raus lassen, scheint keine Bash zu sein.

Solltest unter /bin (oder /usr/bin) trotzdem mal schauen, welche shells da sind, bzw. welche shell bei dem betreffenden User voreingestellt ist. Diese shell dann am besten im shebang eintragen. Das verhindert nämlich, das Dein skript irgendwann von heut auf morgen "spinnt", weil jemand die default shell geändert hat.

lks
Bitte warten ..
Mitglied: killtec
15.03.2018 um 13:30 Uhr
Hi,
echo $0 bringt -ash raus.
Das Skript ist ein Notbehelf bis der Ursprüngliche Fehler gefunden ist, danach wird es gelöscht.
Danke!

Gruß
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Bash Shell Script lernen
gelöst Frage von RobJoe25Batch & Shell4 Kommentare

Hallo Administrator-Community, ich habe eine Frage. Kennt jemand gute Homapage´s (am besten auf Deutsch) oder gute Bücher, wie ich ...

Batch & Shell
Shell dialog script anpassen
gelöst Frage von Tealk144Batch & Shell2 Kommentare

Also ich habe mir ein kleines Script zusammengeschrieben mit der "dialog" Funktion, nun würde ich gern wissen ob man ...

Datenbanken
Syntaxfehler VBA
gelöst Frage von Dr.CornwallisDatenbanken6 Kommentare

Liebe Gemeinde, ich bräuchte Hilfe beim folgenden VBA Code(für Button in Access): Könnte mir bitte jemand erklären was ich ...

Batch & Shell
Unix Shell-Script: IF-Anweisung
gelöst Frage von newit1Batch & Shell6 Kommentare

Hallo zusammen, kann ich mit einer IF-Anweisung prüfen, ob in einer lokalen CSV-Datei in der ersten Spalte überall eine ...

Neue Wissensbeiträge
Windows Netzwerk

CGM Praxisarchiv funktioniert auf Clients nach Update auf 4.14 nicht mehr

Tipp von MOS6581 vor 3 StundenWindows Netzwerk

Moin, ein Kunde setzt das CGM-Praxisarchiv ein. Mehrplatzinstallation mit SQL-Server. Nachdem letzte Woche auf die 4.14 aktualisiert wurde, funktionierte ...

Windows 10

Win 10 - Storage Sense - neues herstellerseitiges Cleaning-Tool statt cleanmgr

Tipp von mathu vor 9 StundenWindows 101 Kommentar

Vermutlich ab dem Oktoberrelease wird eine neue Speicherbereinigungssuftware ausgeliefert von Microsoft. Cleanmgr.exe soll angeblich aber noch weiter parallel verfügbar ...

E-Mail
Neueste Masche der Bad Guys: Offene Erpressung
Information von the-buccaneer vor 1 TagE-Mail14 Kommentare

"Warum den komplizierten Weg über einen Kryptotrojaner nehmen, wenn man die Leute auch direkt erpressen kann?" haben sich wohl ...

Viren und Trojaner
Neues ct-desinfect 2018 erschienen
Information von Lochkartenstanzer vor 1 TagViren und Trojaner

Moin, heise hat eine neues Sonderheft Desinfect veröffentlicht (9,90€/12,90€) . Falls jemand öfter mal Kisten "säubern" muß ist das ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
Kombiniere mehrere 4G Router zu einem Netzwerk - Anwendung kleine LAN (10-20 Leute)
Frage von HulkTheHeroLAN, WAN, Wireless22 Kommentare

Guten Mittag liebes Administrator - Fourm, ich hoffe ich habe das richtige Thema ausgewählt - ansonsten bitte gerne verschieben ...

Firewall
Blocken illegaler Film-Streams
gelöst Frage von CoreknabeFirewall20 Kommentare

Moin Wissende, unsere kleine Hochschule möchte gern das illegale Streaming von Kinofilmen und Serien unterbinden. Wir sperren bisher alle ...

Windows Server
2012 R2 Server Keine Anmeldung möglich Meldung: Laut den Sicherheitsrichtlinien auf diesem PC sollen informationen zur letzten interaktiven Anmeldung angezeigt werden
Frage von Speedy18A4Windows Server19 Kommentare

Hallo, ich habe vor einigen Wochen einen zweiten Domain Controller zu meiner Domain hinzugefügt. Funktionierte alles wunderbar. Auch die ...

iOS
Virus auf iphone
Frage von jensgebkeniOS17 Kommentare

hallo gemeinschaft, habe einen virus auf meinem iphone es kommen zwei meldungsfenster 1. online-2018-software-free.win 2. wpform.com - please click ...