shell scripte und variablen als parameter

Post Reply
Message
Author
imagine
Posts: 74
Joined: 19. Nov 2000 13:57

shell scripte und variablen als parameter

#1 Post by imagine »

hi
habe ein problem mir einem shell script, das mir alle grossbuchstaben in einem verzeichnis "klein machen soll"
ich habe 2 variablen:
...
dateia=mp3/Isolee\ -\ 10\ -\ gallus.mp3
datein=mp3/isolee\ -\ 10\ -\ gallus.mp3
...
so und jetzt versuche ich
mv $dateia $datein
und es funktioniert nicht, fehler:
mv: Ungültige Option -- »\«
wenn ich aber
echo mv $dateia $datein
im script schreibe, dann kann ich genau das, was auf dem term ausgegeben wird in die kommandozeile kopieren und es wird ausgefuehrt??????
wer weiss rat?
danke joerg

WolfieK

Re: shell scripte und variablen als parameter

#2 Post by WolfieK »

hi joerg,

versuch mal folgendes script:

.....
for i in `ls -a /verzeichnisname/*`
do
mv $i `echo $i | tr '[:upper:]' '[:lower:]'`
done
.....

sollte so klappen (zumindest unter Tru64),
ich kann derzeit nicht an mein linux, um es dort zu verifizieren
(bes. was die upper/lower - konstruktion angeht).

aber: be optimistic

greet$
Wolfie

imagine
Posts: 74
Joined: 19. Nov 2000 13:57

Re: shell scripte und variablen als parameter

#3 Post by imagine »

hi
geht nicht. liegt wohl daran, dass in den dateinamen leerzeichen vorkommen und die als sonderzeichen gwertet werden. aber das mit dem upper und lower ist ein cooler tip. ich habe auf jeden fall 2 variablen, einmal der alte name und einmal der neue, jeweils mit relativem pfad , und der mv-befehl
mv $variable1 $variable2
funzt nicht, wegen den leerzeichen oder wegen dem minus ich weiss nicht.
bis dann dann
joerg
ps: ohne leerzeichen und so in den dateinamen laeft das script auch schon wunderbar.

wolfiek

Re: shell scripte und variablen als parameter

#4 Post by wolfiek »

hi joerg,

mal en schuss ins blaue (nee - nich windoofs blue screen !):

vielleicht hilft maskieren des verzeichnisnamens mit hochkomma (')
oder gaensefuesschen (").

kann es im moment leider nicht testen

greet$
Wolfie

Jochen

Re: shell scripte und variablen als parameter

#5 Post by Jochen »

Wenn mv über eine ungültige Option meckert, interpretiert er das "-" aus dem Dateinamen als Beginn einer Option. Das kann man abstellen, in dem man mv vor den Dateinamen die Option "--" übergibt, also <pre>mv -- $dateia $datein</pre>Alternativ verwendest Du Wolfies Vorschlag, also <pre>mv "$dateia" "$datein"</pre>Dadurch werden die Dateinamen als ein zusammengehöriges Argument an mv übergeben, auch wenn Blanks im Namen auftauchen. Und sollte ein Dateiname tatsächlich mal mit - anfangen (ungewöhnlich, aber möglich), dann kombinier das ganze:<pre>mv -- "$dateia" "$datein"</pre>
OK?

User avatar
hjb
Pro-Linux
Posts: 3264
Joined: 15. Aug 1999 16:59
Location: Bruchsal
Contact:

Re: shell scripte und variablen als parameter

#6 Post by hjb »

Hi,

es ist sicher ein Problem mit dem \ als Escape-Character. Setze lieber den ganzen Dateinamen in Anführungszeichen und laß das \ weg.

Gruß,
hjb
Pro-Linux - warum durch Fenster steigen, wenn es eine Tür gibt?

Post Reply