Hermann <hgk1952@zoho.com> (Sa 05 Okt 2013 21:41:39 CEST): > Hi, > > ich versuche ein bash-script zu basteln, das anhand der übergebenen > Argumente ein neues Verzeichnis erstellt. Das Folgende habe ich bisher: > 1 #! /bin/bash 2 # machverz.sh 3 4 cd /tmp/ 5 6 echo Number of arguments: $# 7 8 newdir="" 9 10 while (( "$#" )); do 11 echo $1 12 newdir="$newdir $1" 13 echo "$newdir" 14 shift 15 done 16 17 echo "$newdir" 18 19 mkdir "$newdir" 20 21 exit > Das neue Verzeichnis wird auch erstellt, aber mit einem führenden > Leerzeichen vornedran. … > > Die echo-befehle zeigen, dass das Leerzeichen von Anfang an dabei ist. > Wo ist mein Fehler, bzw wie bekomme ich das Leerzeichen weg? Zeile 12, da wird doch schon beim ersten mal newdir="$newdir $1" zu newdir=" $1" Besser sähe diese Zeile 12 (für die Bash) so aus: newdir="${newdir+$newdir }$1" In der Bash-Manpage suchst Du nach "Parameter Expansion". BTW, ich würde nicht in das Zielverzeichnis wechseln, das macht die spätere Fehlersuche kompliziert. Lieber newdir="${newdir+$newdir }/tmp/$1" Best regards from Dresden/Germany Viele Grüße aus Dresden Heiko Schlittermann -- SCHLITTERMANN.de ---------------------------- internet & unix support - Heiko Schlittermann, Dipl.-Ing. (TU) - {fon,fax}: +49.351.802998{1,3} - gnupg encrypted messages are welcome --------------- key ID: 7CBF764A - gnupg fingerprint: 9288 F17D BBF9 9625 5ABC 285C 26A9 687E 7CBF 764A - (gnupg fingerprint: 3061 CFBF 2D88 F034 E8D2 7E92 EE4E AC98 48D0 359B)-
Attachment:
signature.asc
Description: Digital signature