Erfahrungen & Bewertungen zu Lars Pilawski

Linux bash: Zeichen im string prüfen (slash)

Um Tippfehler ganz auszuschließen, habe ich mir mal Gedanken gemacht um Fehler bei der Pfadangabe (read…)im Script zu umgehen.
Mit der Funktion prüft man die Eingabe, z.b. eines Pfades darauf, ob die Slashes am Anfang oder ggf. am Ende gesetzt sind. Die Eingabe „/pfad/“ hat nicht die selben Auswirkungen wie „pfad/“ oder nur „pfad“! Wenn man ausversehen nur „pfad“ eingibt werden alle Handlugen, im Verzeichnis wo das Script ausgeführt wird, ausgeführt. Um dies zu verhindern werden stets die Slashes am Anfang und Ende gesetzt, um dadurch die korrekte Pfadangabe zu erreichen.


#!/bin/bash

read -p "pfad " home

if echo "$home" | grep -q '^/' ; then
echo "$home mit / am Anfang"
else
echo "$home ohne / am Anfang"
#Slash am Anfang einfügen
home=/$home
echo "$home wieder mit / am Anfang"
fi

echo "------------------------------------"

if echo "$home" | grep -q '/$' ; then
echo "$home mit / am Ende"
else
echo "$home ohne / am Ende"
# Slash am Ende einfügen
home=$home/
echo "$home wieder mit / am Ende"
fi

grep -q ‚^/‘ bedeutet dass das erste Zeichen ein „/“ sein muss und grep -q ‚/$‘ das letze Zeichen auch ein „/“. Wenn dies nicht zutrifft (else), werden die Slashes jeweils gesetzt!

Ausgabe sieht so aus:

pfad home
home ohne / am Anfang
/home wieder mit / am Anfang
————————————
/home ohne / am Ende
/home/ wieder mit / am Ende

Oder so:

pfad /home
/home mit / am Anfang
————————————
/home ohne / am Ende
/home/ wieder mit / am Ende

Die die echo Ausgaben sind nur zur Veranschaulichung gesetzt worden!

Check Also

fail2ban mit IPv6

IPv6 verbreitet sich immer mehr. Leider nehmen auch die BruteFroce Angriffe zu. Wer jetzt fail2ban ...

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

*

code

Wir nutzen Cookies um dir passende Inhalte zu präsentieren und dein Surfvergnügen zu optimieren, aktivieren die Cookies aber erst, wenn du auf Akzeptieren klickst. Mehr Infos

Wir benutzen Google Analytics um zu ermitteln, welche Inhalte unsere Besucher sehen wollen und welche nicht. Eingebettete YouTube Videos helfen dir mittels Cookies nur die Videos zu sehen, die du sehen willst. Mittels Facebook Pixel ermitteln wir, welche Videokurse und Inhalte dir gefallen könnten und welche nicht. Unser Popup-Cookie nutzen wir, damit du das Popup nur einmal siehst und nicht bei jedem Aufruf.

Schließen

Lars Pilawski hat 4,80 von 5 Sternen | 152 Bewertungen auf ProvenExpert.com