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, 233 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

Hilfe bei Shell Script zum verschieben von Ordnern

gelöst Frage von mqlmannBatch & Shell14 Kommentare

Hallo, ich versuche gerade ein Script zu bauen, das folgendes können soll: 1. Einen bestimmten Pfad nach Ordnern mit ...

Neue Wissensbeiträge
Microsoft
Shadow Defender
Tipp von Hyrule vor 11 StundenMicrosoft

Ich denke viele kennen es: Ein Update oder ein neues Programm und vieles funktioniert nicht mehr wie gewünscht. Die ...

Microsoft
Microsoft verarztet 50 Sicherheitslücken
Tipp von Hyrule vor 4 TagenMicrosoft

Microsoft verarztet mal wieder ein "paar" Sicherheitslücken in ihren Produkten: Und mal wieder Remote Code Execution und der abartige ...

Sicherheit

Prüfskript gegen Spectre und Co. wurde erweitert

Tipp von DerWoWusste vor 5 TagenSicherheit

Moin. Get-SpeculationControlSettings sagt sicherlich den meisten etwas. Mit den neuen Spectrevarianten muss man nun weitere Schritte machen, um zu ...

LAN, WAN, Wireless

IPhone und iPad scheinen Verbindungsprobleme mit Unifi v5.7.23 und 802.11r (schnelles Roaming) zu haben

Erfahrungsbericht von StefanKittel vor 8 TagenLAN, WAN, Wireless4 Kommentare

Hallo, vielleicht hilft dieser recht kurze Bericht doch den Einen oder Anderen. Ausgangspunkt Ein Kunde von mir setzt einen ...

Heiß diskutierte Inhalte
Hyper-V
Hyper V startet nicht wenn eine Offline geschaltene HD integriert wird
Frage von DieAzubinneHyper-V11 Kommentare

Hallö, bei einem PC der mit Windows 10 Pro installiert ist habe ich das Problem, dass der Virtuelle PC ...

CPU, RAM, Mainboards
ASUS P5W DELUXE startet nur manchmal und nur mit 2 GraKas
Frage von Windows10GegnerCPU, RAM, Mainboards11 Kommentare

Hallo, ich habe das o.g. Motherboard erhalten. Egal ob C2D 8400, Pentium D 945 oder P4 670, das teil ...

Virtualisierung
Virtuelle Maschinen langsam unabhängig vom Hypervisor
gelöst Frage von HyruleVirtualisierung9 Kommentare

Hallo, ich möchte gerne zwei bis drei virtuelle Maschinen virtualisieren, darauf sollen jeweils Windows 10 und diverse etwas größere ...

Rechtliche Fragen
Vorlage "private Nutzung dienstlicher Mobiltelefone"
Frage von linos2Rechtliche Fragen8 Kommentare

Hallo zusammen, ich bin auf der Suche nach einer Vorlage für die private Nutzung von dienstlichen Mobiltelefonen. Unsere Firma ...