[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [OT ]bash Problem



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


Reply to: