IF-Anweisung - Bedienung entziffern

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von barti, 06.09.2012.

  1. barti

    barti Grünschnabel

    Dabei seit:
    06.09.2012
    Beiträge:
    1
    Zustimmungen:
    0
    Hallo liebe Community,

    ich bin gerade dabei ein altes Shell-Script an neue Eingabe anzupassen.
    Drei IF-Anweisungen sind für mich nicht verständlich, und zwar:
    ***
    if ((FIRSTLOOP==1)&&($0!~/^\[.*.\]/)&&($0!~/^$/))
    {
    if ($0!~/^#.*/)
    {
    printf ("%s%c",$0," "); <-- ist eigentlich ein AWK-Teil, deshalb printf.
    }
    };
    if (($0~/^\[.*.\]/)&&($0!~SEARCHSECTION))
    {
    FIRSTLOOP=0;
    };
    ***
    Kennt sich vielleicht jemand damit aus, und könnte mir sagen was für eine Bedienung diese reguläre Ausdrücke generieren?

    Danke im Vorraus!

    Grüße
    Barti
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #2 bitmuncher, 06.09.2012
    bitmuncher

    bitmuncher Der Stillgelegte

    Dabei seit:
    08.05.2007
    Beiträge:
    3.171
    Zustimmungen:
    0
    Dass das ein Shell-Skript ist, glaube ich eher nicht, da das viel mehr nach Perl aussieht. Und um diese Statements zu verstehen, musst du sie einfach nur mal logisch zerlegen, denn komplizierte Regexen sind da nicht wirklich drin. Diese beschränken sich auf:
    - /^\[.*.\]/
    - /^$/
    - /^#.*/
    - /^\[.*.\]/
    Der Rest sind simple Bedingungen. Du solltest dir einfach mal angewöhnen vor und nach Operatoren ein Freizeichen zu setzen und ggf. auch geklammerte Teile in Bedingungen zu separieren. Das erhöht die Lesbarkeit enorm. Aus
    if ((FIRSTLOOP==1)&&($0!~/^\[.*.\]/)&&($0!~/^$/))
    wird dann ganz einfach
    if ( (FIRSTLOOP == 1) && ($0 !~ /^\[.*.\]/) && ($0 !~ /^$/) )
    und schon kann man sehen, was da passiert und erkennt, dass es 3 verschiedene Bedingungen sind. Und als Linux-User kannst du dir nun einfach den kregexpeditor nehmen und dir damit die Regexen visuell darstellen und wirst sehen:
    - /^\[.*.\]/ <- matcht alles, was am String-Anfang in eckigen Klammern steht
    - /^$/ <- Was das soll, ist mir irgendwie unklar. Seltsame Empty-String-Abfrage? ^ = steht am Anfang des Strings, $ = steht am Ende des Strings. Also... am Anfang und am Ende des Strings steht nichts? Hm... vielleicht hat ja jemand 'ne logischere Erklärung.

    Und sonst kann ich dir sehr http://www.regular-expressions.info/reference.html an's Herz legen. Schön übersichtlich sind dort die wichtigsten Special-Chars von Regexen dargestellt.
     
Thema:

IF-Anweisung - Bedienung entziffern

Die Seite wird geladen...

IF-Anweisung - Bedienung entziffern - Ähnliche Themen

  1. awk: Dateiinhalt/Variableninhalt als Teil einer if-Anweisung

    awk: Dateiinhalt/Variableninhalt als Teil einer if-Anweisung: Hallo Ich habe folgendes Problem: Anhand dem Ergebnis einer Datenbankabfrage habe ich mir mit sed usw. einen String gebastelt und in einer Datei...
  2. if-Anweisung

    if-Anweisung: Hallo, ich habe eine frage zur if-Anweisung: NUMMER=`echo $2 | sed -e "s/\ //g" -e "s/+49/0/"` if [ -d $NUMMER == true]; then ... else...
  3. Wireshark 2.0 mit zahlreichen Verbesserungen bei der Bedienung

    Wireshark 2.0 mit zahlreichen Verbesserungen bei der Bedienung: Über ein Jahr nach der letzten stabilen Version haben die Entwickler der Sniffer-Software »Wireshark« nun Version 2.0 vorgelegt. Das Tool bietet...
  4. Welcher WM, welche Distro eignen sich am besten für eine Bedienung ohne Maus?

    Welcher WM, welche Distro eignen sich am besten für eine Bedienung ohne Maus?: 1.Ich hätte gern ein Linux, dass man weitgehend ohne Maus bedienen kann. Auf Desktops Enviroments wie Gnom oder KDE, überhaupt auf zuviel GUI...
  5. Umfrage zu Selbstbedienungskassen

    Umfrage zu Selbstbedienungskassen: Hallo liebe Community, im Rahmen meines Mensch-Computer-Systeme Studiums an der Universität Würzburg besuche ich die Veranstaltung...