Hermann <hgk1952@zoho.com> (So 06 Okt 2013 12:22:28 CEST): > Hallo Heiko, > > > newdir="${newdir:+$newdir }$1" > > Damit klappt es wie gewünscht, auch wenn mir die Syntax nicht ganz > klar ist. Darum war dort der Hinweis auf die Manualseite der Bash, dort ist das beschrieben, manchmal etwas akademisch, aber es ist erstmal ein Anfang :) > > Das cd /tmp/ soll nur verhindern, das ich mir mein Home mit > verunglückten Verzeichnisnamen vollmülle, das kommt raus. > > Der Schnippel ist natürlich nur ein Ausschnitt. In der endgültigen > Fassung folgt dann noch sowas wie > > mv *$i*$2* newdir > > machver.sh Hänschen Klein soll dann ein Verzeichnis "Hänschen Klein" > erstellen und alle Dateien, die "Hänschen Klein" im Namen haben, dahin > verschieben. Ich glaube, jetzt verstehe ich, warum Du so viele Namen an „mkdir“ übergeben möchtest. Falls auf der Kommandozeile tatsächlich machver.sh Foo Bar stand. Weil Du jetzt unterstellst, der Ordner soll „Foo Bar“ heißen. Und was machst Du, wenn der Ordner „Foo Bar“ heissen soll (2 Leerzeichen)? Korrekter Aufruf des Scripts wäre machver.sh "Foo Bar" Und dann ist es innerhalb des Scripts nur $1, in dem Du den Verzeichnisnamen findest, Du kannst also direkt „mkdir "/tmp/$1"“ machen. PS. Die Endung .sh würde ich weglassen, denn was machst Du, wenn das mal kein Shell-Script mehr ist. Prinzipiell kann dann .sh bleiben, stiftet aber Verwirrung. Den Aufrufer interessiert es überhaupt nicht, ob das ein Shell-, Bash-, Perl-, Python-Script oder gar ein Binary ist. -- Heiko
Attachment:
signature.asc
Description: Digital signature