15. Oktober 200421 j 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
15. Oktober 200421 j Reg Exp : echo /hallo/welt/ | egrep ^/ | egrep /\$ Gibt True zurück wenn am Zeilenanfang und Ende ein / steht. Gruß Terran
17. Oktober 200421 j 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
5. November 200421 j 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
5. November 200421 j 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 ) cya alligator
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.