Hinweis: Das Forum wird geschlossen! Neue Registrierungen sind nicht mehr möglich!

 Zurück zu Pro-Linux   Foren-Übersicht   FAQ     Suchen    Mitgliederliste
Dateinamen mit Leerzeichen & Bash

 
Neuen Beitrag schreiben   Auf Beitrag antworten    Pro-Linux Foren-Übersicht -> Programmieren - Allgemein
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
aebi



Anmeldungsdatum: 02.12.1999
Beiträge: 41
Wohnort: Kastanienbaum

BeitragVerfasst am: 21. Jan 2002 19:32   Titel: Dateinamen mit Leerzeichen & Bash

Hallo Zusammen

Ich habe da ein kleines Skript, das meine MP3's checken soll. Leider haben die aber z.T. Leerzeichen im Namen und so geht das Ding dann nicht mehr, da For nach jedem Leerzeichen eine neue Datei vermutet.
Kann man da irgendwie abhelfen?

THX
Philipp

CODE:
#!/bin/bash
for song in `find . -name "*.mp3"` ; do
if [ mp3_check -a -ss ${song} > /dev/null 2>&1 ] ; then
echo "Song ${song} is good"
else
echo "Song ${song} is bad"
fi
done
 
Benutzer-Profile anzeigen Private Nachricht senden

bakunin



Anmeldungsdatum: 16.08.1999
Beiträge: 597
Wohnort: Lorsch (Südhessen)

BeitragVerfasst am: 21. Jan 2002 22:29   Titel: Re: Dateinamen mit Leerzeichen & Bash

Hi!

Um eben jenen Effekt zu verhindern, verwendet man Anführungszeichen.

Cheers,
GNU/Wolfgang
 
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen

Jochen
Gast





BeitragVerfasst am: 22. Jan 2002 9:19   Titel: Re: Dateinamen mit Leerzeichen & Bash

Ich weiss nicht, ob Anführungzeichen um "${song}" reichen, da die for-Schleife die Ausgabe des Kommandosubstitions-find wahrscheinlich zersäbelt. Habe es allerdings auch nicht getestet. In solchen Fällen gehe ich anders vor und vermeide lieber, dass die Shell jemals die Dateinamen ungequotet zu Gesicht bekommt:
code:

find . -name "*.mp3" | while read FILENAME ; do
if mp3_check -a -ss "$FILENAME" > /dev/null 2>&1 ; then
echo "Song \"$FILENAME\" is good"
else
echo "Song \"$FILENAME\" is bad"
fi
done


Die Pipe kombiniert mit while erfüllt den selben Zweck, lässt aber die Shell nicht dran.

Jochen
 

aebi



Anmeldungsdatum: 02.12.1999
Beiträge: 41
Wohnort: Kastanienbaum

BeitragVerfasst am: 22. Jan 2002 14:06   Titel: Re: Dateinamen mit Leerzeichen & Bash

Hey Jochen, ich bin dir tief dankbar.
Schon das 2. Mal heute, dass du mir aus der Patsche hilfst.

Philipp
 
Benutzer-Profile anzeigen Private Nachricht senden

trinity



Anmeldungsdatum: 12.10.2001
Beiträge: 821

BeitragVerfasst am: 22. Jan 2002 18:27   Titel: Re: Dateinamen mit Leerzeichen & Bash

Man könnte auch das -exec Kommando von find benutzen.

find . -name *.mp3 -exec mp3_check -a -ss {} ;

evtl noch mit der if-Abfrage(da ich aber den Rückgabewert von mp3_check nicht kenne, habe ich mal die if-Abfrage weggelassen)
_________________
"Korrekt, Freundlich, Kostenfrei", wähle genau zwei. (Lutz Donnerhacke in dcsf)


Zuletzt bearbeitet von trinity am 22. Jan 2002 18:27, insgesamt 1-mal bearbeitet
 
Benutzer-Profile anzeigen Private Nachricht senden

Beiträge vom vorherigen Thema anzeigen:   
     Pro-Linux Foren-Übersicht -> Programmieren - Allgemein Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehen Sie zu:  

Powered by phpBB © phpBB Group
pro_linux Theme © 2004 by Mandaxy