Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Shellscript: Erstes und Letztes Zeichen von Strings einlesen

Empfohlene Antworten

Hallo!

In einem Script das files von A nach B kopieren soll will ich prüfen ob die als Parameter mitgelieferten Pfade (quelle, ziel) absolut (nicht relativ) eingegeben sind.

Dafür muss ich ja eigentlich nur nachgucken ob die beiden Strings mit einem "/" beginnen.

Ausserdem müssen die Strings mit einem "/" enden, da sonst der im Script verwendete befehl rsync nicht korrekt arbeitet.

Ich habe schon versucht, die scripts mit "sed" zu zerteilen und diese Teilstücke beim testen zu verwenden, aber das funktioniert nicht, da "sed" mit den "/" nicht klarkommt:

Hier ein auszug aus meinem Script (testet ob ein Slash vorhanden ist)


...

echo "Checke absolute Pfadangaben..."


CUT=$(echo $QDIR | sed 's/\/*//')

SLASH=$(echo $QDIR | sed 's/'$CUT'//')


if test $SLASH = "/"

...

Dieses Script schmeisst Fehler, sobald im String nur mehr als 1 "/" vorkommt (Was bei absoluten Pfaden eigentlich alles andere als selten ist) ;)

Kennt jemand eine bessere Lösung?

thx,

blue

vielen dank!

das funzt (etwas an mein script angepasst) bestens!

:) :uli

Geht auch mit Bash-Mitteln:

if [ "${QDIR:0:1}" == "/" ]; then

  echo Slash am Anfang!

fi


if [ "${QDIR:(-1)}" == "/" ]; then

  echo Slash am Ende!

fi

-> http://www.tldp.org/LDP/abs/html/string-manipulation.html :)

  • 3 Wochen später...

vielen dank für deine hilfe... ich bin grade dabei mit "expr length" zu kämpfen, wenn ich nen ergebnis habe oder garnicht mehr weiter weis melde ich mich!

thx,

J2B4U

Hi,

ich hatte mal ein ähnliches Prob,

aber wollte einigermaßen sicher gehen, dass da auch kein Müll als Pfad drin steht und hat das dann so gemacht.

if [[ "${HOMEDIR}" != @(/)+([0-9a-zA-Z_-])*([0-9a-zA-Z_/-])@(/) ]]

then

xxxx

fi

Aber TerranMarines Lösung sieht schon cooler aus :o)

cya

alligator

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.