Aufruf von Lame encoder funktioniert im Script nicht

D

Druckerfehler

Grünschnabel
Also ich hab mir zum hören meiner mp3's folgendes Shell-Script erstellt:
-------------------playmp3.sh-------------------------------------
#!/bin/bash
lame --decode $1 -|sndfile-play -
-------------------------------------------------------------------

Erstens kann ich mein Shell-Script innerhalb der Kommandozeile mit
bash playmp3.sh mp3file
aufrufen und zweitens bei Dateinamen mit Leerzeichen bekomme ich immer
ne Fehlermeldung

Beispiel:
bash playmp3.sh Killing\ me\ softly.mp3
bekomme ich diese Fehlermeldung vom lame-encoder:
"Param me exceeds arg"
gebe ich den Dateinamen jetzt mit " ein dann bekomme ich diese Fehlermeldung:
"Param / me exceeds arg"
und mit ' funktioniert es auch nicht.

Da ich hauptsächlich in der shell arbeite wäre es wirklich super wenn mir jemand helfen könnte
 
Lame ist ein Encoder kein Decoder ( man lame ).
Zum decoden brauchst Du mpg123, madplay oder etwas in der Art.
 
Lame ist ein Encoder kein Decoder ( man lame ).
Zum decoden brauchst Du mpg123, madplay oder etwas in der Art.

mit der option --decode kann man auch decodieren!

wenn ich alles manuell eingebe funktioniert's ja auch, halt bloß net mit'm shell-script weil irgendwas mit der Parameterübergabe net stimmt:headup:
 
So sollte es gehen (Anführungszeichen um $1):
Code:
-------------------playmp3.sh-------------------------------------
#!/bin/bash
lame --decode "$1" -|sndfile-play -
-------------------------------------------------------------------
 
Die Decodefunktion von Lame ist da um mp3 wieder ins wav Format zu konvertieren.
Wenn ich Deinen Befehl in die Konsole eingebe kommt bei mir ebenfalls der von Dir
beschriebene Fehler, was mich deshalb wundert ist das Du scheinbar das Soundfile
abspielen kannst.
 
So sollte es gehen (Anführungszeichen um $1):
Code:
-------------------playmp3.sh-------------------------------------
#!/bin/bash
lame --decode "$1" -|sndfile-play -
-------------------------------------------------------------------

Probiere es gleich mal aus, hoffe es geht!
@Vegeta: das liegt am lame --decode $1 -|sndfile-play -
| |
V V
STDIN STDOUT
zu gut deutsch ich decodiere nach wave und lasse gleichzeitig die ausgabe von lame nach sndfile-play als eingabe verwenden mittels pipe symbol |

vll. kennst du das ja von DOS
dir|mor leitet z.Bsp alles im Aktuellen seitenweise verzeichnis auf, so das du immer Leertaste drücken kannst um die nächste Seite anzuzeigen. Was Linux besser macht:
STDIN,
STDOUT mittels denen du z.Bsp die Datei Ein-/Ausgabe so umleiten kannst wie ich es in meinem Script vorhabe.

Hey danke das mit dem "$1" funktioniert!!!!!!!!!
Habe es beim aufruf von des shell-scripts also z.B:
./playmp3.sh "Killing\ me\ softly.mp3" auch mit den
" probiert auf den gedanken mit "$1" kam ich jetzt net....
Thanks
very much thanks
 
Zuletzt bearbeitet:

Ähnliche Themen

Löschroutine mit Überprüfung

Zurück
Oben