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

Frage Linux

Ausrufezeichen in der Bash

Mitglied: raven16

raven16 (Level 1) - Jetzt verbinden

21.12.2012, aktualisiert 13:11 Uhr, 4085 Aufrufe, 5 Kommentare

Kann mir jemand mal erklären, was ! -f für eine Funktion im Skript hat?
Wüsste nicht wie ich eigenständig danach suchen kann, weil wenn ich ! bei google eingebe, dann kommt nicht viel bei rum :D
01.
if [[ ! -f ${ODB_AL_PATH}/${OLDESTPATH} ]]
Mitglied: Cthluhu
21.12.2012 um 12:07 Uhr
Ohne Hallo, aber ich antworte trotzdem mal:

Die eckigen Klammern sind keine Gruppierungsklammern, sondern Abkürzungen für das Programm "test". Schau dir mal die Man-Page von Test an. Da steht dass "!" für negieren und "-f" für die Überprüfung ob eine Datei existiert steht.

lg

Cthluhu
Bitte warten ..
Mitglied: SHuesken
21.12.2012 um 12:22 Uhr
Normalerweise dient das Ausrufezeichen in der Bash zum Wiederholen eines Befehls und der Schalter -f zum deklarieren von eingebetteten Befehlen (Bash Builtin Commands) der Bash.

Gruss
SHuesken
Bitte warten ..
Mitglied: raven16
21.12.2012, aktualisiert um 13:32 Uhr
Mahlzeit, sry für die fehlende Begrüßung.

Okay ich glaube Cthluhu hat recht in diesem Fall, weil der Quelltext folgendermaßen aussieht:
01.
OLDESTFILE=$(ssh ${DA_HOST} ls -t1 ${DA_PATH}/${FILEXTENSION} 2> /dev/null | sort -n | head -1) 
02.
if [[ ! -f ${ODB_AL_PATH}/${OLDESTFILE} ]] 
03.
then 
04.
   ... 
05.
else 
06.
    to_stderr "about to move ${DA_HOST}:${OLDESTFILE} ${ODB_AL_PATH} - EXITING" 
07.
fi
Also wenn dieser Pfad existiert, dann soll er bei ... etwas ausführen was hier nicht relevant ist und andernfalls soll er die meldung ausgeben, dass die Datei schon existiert

also wird dann mit ! negiert und mit -f prüfe ich ob der Pfad mit der Datei schon vorhanden ist.
Aber mir fällt dabei gerade auch auf, dass dann mein Vorgänger, der dieses Skript programmiert hat, da Schwachsinn geschrieben hat, weil OLDESTFILE schon einen kompletten Pfad heraus sucht und in der IF-Abfrage hängt der diesen kompletten Pfad hinter noch einen Pfad... wirsch
Dann hat das nur immer funktioniert, weil die IF-Abfrage negiert war.
Bitte warten ..
Mitglied: SHuesken
21.12.2012 um 13:47 Uhr
Jap, in diesem Fall ist die Antwort von Cthuluhu korrekt.

Gruss
SHuesken
Bitte warten ..
Mitglied: 64748
21.12.2012 um 21:35 Uhr
Hallo zusammen,

der Test -f testet nicht nur ob die Datei existiert, sondern auch, ob es sich um eine "reguläre Datei" handelt, also z.B. nicht um ein Verzeichnis und nicht um einen Hardlink oder Symlink.

Für genauere Infos lese die manpage von bash und suche den Absatz "CONDITIONAL EXPRESSIONS".

Markus
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Bash sqlplus oder Bash Fehler?
Frage von MarabuntaBatch & Shell7 Kommentare

Hallo, da ich sehr eingeschränkt in Bash bin, brauche ich hier etwas Hilfe. Was stimmt mit dem EOF nicht? ...

Debian
Passwörter in Skripten die mit Dollar-Ausrufezeichen beginnen
gelöst Frage von crackhawkDebian5 Kommentare

Hallo zusammen! Sorry für den Titel, aber $ und ! sind da leider nicht erlaubt. Ich habe ein Problem ...

Batch & Shell
FOR Schleife mit DIR verliert Ausrufezeichen
Frage von RaidManBatch & Shell7 Kommentare

Hallo Kenner und Könner, leider hadere ich immer noch mit den Sonderzeichen in meiner BATCH Jetzt ist es das ...

Batch & Shell
Bash scripting
gelöst Frage von HighShooterBatch & Shell3 Kommentare

Hallo, für meinem Server auf Debian 8 soll ich einen Script schreiben; der sollte folgendes beinhalten: eine Datei von ...

Neue Wissensbeiträge
Linux

Meltdown und Spectre: Linux Update

Information von Frank vor 1 TagLinux

Meltdown (Variante 3 des Prozessorfehlers) Der Kernel 4.14.13 mit den Page-Table-Isolation-Code (PTI) ist nun für Fedora freigegeben worden. Er ...

Tipps & Tricks

Solutio Charly Updater Fehlermeldung: Das Abgleichen der Dateien in -Pfad- mit dem Datenobject ist fehlgeschlagen

Tipp von StefanKittel vor 1 TagTipps & Tricks

Hallo, hier einmal als Tipp für alle unter Euch die mit der Zahnarztabrechnungssoftware Charly von Solutio zu tun haben. ...

Sicherheit

Meltdown und Spectre: Wir brauchen eine "Abwrackprämie", die die CPU-Hersteller bezahlen

Information von Frank vor 1 TagSicherheit12 Kommentare

Zum aktuellen Thema Meltdown und Spectre: Ich wünsche mir von den CPU-Herstellern wie Intel, AMD oder ARM eine Art ...

Sicherheit

Meltdown und Spectre: Realitätscheck

Information von Frank vor 1 TagSicherheit9 Kommentare

Die unangenehme Realität Der Prozessorfehler mit seinen Varianten Meltdown und Spectre ist seit Juni 2017 bekannt. Trotzdem sind immer ...

Heiß diskutierte Inhalte
Sicherheit
Meltdown und Spectre: Die machen uns alle was vor
Information von FrankSicherheit29 Kommentare

Aktuell sieht es in den Medien so aus, als hätten die Hersteller wie Intel, Microsoft und Co den aktuellen ...

Ubuntu
Ubuntu - Starter für nicht vertrauenswürdige Anwendungen
Frage von adm2015Ubuntu17 Kommentare

Hallo zusammen, Ich verwende derzeit die Ubuntu Versionen 17.10 bzw. im Test 18.04. Ich habe mehrere .desktop Dateien in ...

SAN, NAS, DAS
Hilfe beim Einrichten eines Storages (SAN)
gelöst Frage von Vader666SAN, NAS, DAS15 Kommentare

Hallo Admins! Ich bin in einer kleineren Firma und hatte bisher mit dem Thema SAN nur in meiner Ausbildung ...

Batch & Shell
Meltdown Microsoft Prüf Script - .zip Datei leider leer
gelöst Frage von MasterBlaster88Batch & Shell13 Kommentare

Hallo zusammen, ich patche gerade unsere Windows Server bzgl. der Meltdown Lücke. Patch vorhanden, Reg Keys gesetzt Um das ...