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, 526 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
Shell dialog script anpassen
gelöst Frage von HardExitBatch & Shell2 Kommentare

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

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
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 ...

Batch & Shell
Power Shell Script zu Bild Suche
gelöst Frage von akoch85Batch & Shell10 Kommentare

Hallo liebe Mitglieder, ich brauche dringend eure Hilfe. Problemstellung: 1.Bilder anhand des Namens z.B. "B1876GH.jpg" aus einem Ordner herausziehen ...

Neue Wissensbeiträge
Humor (lol)
Administrator.de Perlen
Tipp von DerWindowsFreak2 vor 3 TagenHumor (lol)6 Kommentare

Hallo, Heute beim stöbern auf dieser Seite bin auf folgenden Thread aus dem Jahre 2006 gestossen: Was meint ihr? ...

Erkennung und -Abwehr
OpenSSH-Backdoor Malware erkennen
Tipp von Frank vor 4 TagenErkennung und -Abwehr

Sicherheitsforscher von Eset haben 21 Malware-Familien untersucht. Die Malware soll Hintertüren via OpenSSH bereitstellen, so dass Angreifer Fernzugriff auf ...

iOS
WatchChat für Whatsapp
Tipp von Criemo vor 7 TageniOS5 Kommentare

Ziemlich coole App für WhatsApp User in Verbindung mit der Apple Watch. Gibts für iOS sowohl als auch für ...

iOS
IOS hat nen Cursor!
Tipp von Criemo vor 7 TageniOS5 Kommentare

Nette Funktion im iOS. iPhone-Mauszeiger aktivieren „Nichts ist nerviger, als bei einem Tippfehler zu versuchen, den iOS-Cursor an die ...

Heiß diskutierte Inhalte
Windows Server
Dienstnamen und oder Deutsche und Englische Beschreibung in services.msc gleichzeitig anzeigen
gelöst Frage von vafk18Windows Server23 Kommentare

Guten Morgen, die Suche nach Diensten in services.msc gestaltet sich immer wieder schwierig, weil mir je nach Aufgabe die ...

Windows Server
Kleine Umfrage: Windows Server Desktop oder Core?
Frage von doomfreakWindows Server18 Kommentare

Hey :) Ich wollte mal eine kleine Umfrage hier starten. Ich bin schon etwas länger auf dieser Seite hier ...

JavaScript
Javascript: WebSql
gelöst Frage von internet2107JavaScript17 Kommentare

Guten Morgen zusammen, zunächst einmal einen schönen dritten Advent. Ich habe ein Problem mit Javascript und WebSQL. Bisher habe ...

Microsoft
Lizenzplausibilisierung oder Spam?
Frage von lordimacMicrosoft14 Kommentare

Liebe Forengemeinde, uns erreichte die Tage eine Mail bezüglich einer Lizenzplausibilisierung durch einen Microsoft SAM Partner. Die Meldung im ...