Hallo erstmal, Am Mittwoch, 20. Juni 2001 um 19:48 schrieb Jan Trippler / Sascha Peters:
Das glaube ich nicht. Setzt Du das Argument *.mp3 wie oben in einfache Hochkommata? Dann expandiert die Shell nämlich das Argument nicht mehr und es kommt uverändert im Script an, so dass Du es wie oben beschrieben benutzen kannst.
Das wußte ich nicht dann habe ich das total mißverstanden, sorry!
BTW: Wenn Du aus einem Skript heraus ein anderes aufrufst, dann wartet das aufrufende standardmäßig. Das ist nicht anders als in einer interaktiven Shell. Willst Du das nicht, musst Du das aufgerufene Skript in den Hintergrund schicken ( & hintenran).
Danke wird wohl dann kurze Zeit so laufen! bis ich dann mit Deiner und eurer Hilfe das hinbekommen habe "richtig" zu machen!
Aber das brauchst Du ja nicht.
doch, noch!!!
cd /pfad/zum/mp3/verzeichnis ls $1 | while read datei; do mpg123 -vw "/pfad/zum/ziel/$(basename "$datei" .mp3).wav" "$datei" done </ungetestet> Noch eine andere Variante, wenn Du Dich nicht mit der Dateinamen-Expansion der Shell rumschlagen willst: Übergib dem Script einfach nur die Endung: script.sh mp3
und im Script nimmst Du dann: ls *.$1 | while read datei; do ...
Mal eine andere Frage, ich versuche das gerade mal anzuwenden, aber das bekomme ich nicht in die Reihe! $1 steht da für Parameter eins und das soll dann also die Suchmaske sein den "ls" Befehls! oder? und diese wird dann umgeleitet auf eine schleife! aber ist "datei" auch eine Variable oder was? ich kann das gedanklich nicht nachvollziehen. Wäre nett wenn das einer erklären könnte. -- Mit freundlichen Grüssen Sascha Peters linux@progressing.de