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

Re: [OT ]bash Problem



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


Reply to: