Sascha Peters schrieb am 18.06.2001 22:12:22:
#!/bin/sh for file; do mpg123 -vw "$(basename $file .mp3).wav" "$file" done
Aufruf mit <skript> *.mp3
Habe ich in der Liste gefunden. Kann man denn das so umschreiben das man in dem Filenamen das ".mp3.wav" weg hat, dafür aber ein ".wav"? Ich bin nicht der große shell Programmierer.
Klappt das nicht? Eigentlich sollten die neuen Dateien danach die Endung .wav haben statt .mp3 oder gar .mp3.wav. Dafür sorgt das basename. Syntax in diesem Fall: basename <Dateiname> <zuStreichendesSuffix> Mit $(nochnBefehl) kannst du Befehle schachteln. Hier wird innerhalb der Klammer der Dateiname von allen Pfadangaben und dem Suffix .mp3 befreit, bevor ihm direkt nach der Klammer ein .wav hintendran gepappt wird. Die Leerzeichen sorgen dafür, daß Leerzeichen im Dateinamen keinen Ärger machen.
so in etwa soll das aussehen! weiß nur nicht wie ich das Zeitlich von einander abhängig machen kann, so das die mail erst los geht wenn er auch fertig ist.
Soweit ich weiß, sollte ein && zwischen den Befehlen helfen, da dann der zweite Befehl den positiven Rückgabecode des ersten Befehls abwartet. Aber das hast du ja schon eingebaut.
#!/bin/sh
Wenn Du das Konstrukt $(nochnBefehl) benutzt, solltest Du der Ordnung halber hier ein #!/bin/bash hinschreiben, da das Konstrukt bash-spezifisch ist. Oder Du ersetzt $(blubb) durch `blubb` (das sind backticks oder auch accents graves (sp?)), dann kannst Du auch /bin/sh stehenlassen. Ist aber mehr eine Sache des "jetzt machen wir es ordentlich".
for file; do mpg123 -vw "$file.wav" "$file" done && \
Übernimm ruhig den mpg123-Aufruf mit basename vom obigen Skript, damit Du die Endungen richtig hinbekommst.
Der aufruf *.wav während der brennt, bedeutet das das er nach alphabetischer Reihenfolge brennt?
Er brennt meines Erachtens in genau der Reihenfolge, die er beim Aufruf von ls nutzen würde. Vorsicht: Alles ungetestet, keine eigene Brenn-Erfahrung vorhanden :-( Gruss, Antje -- Antje M. Bendrich list@bendrich.de http://www.bendrich.de