Ich versuche, Künstlerinformationen über Variablen mit Leerzeichen in ihnen zu setzen. Lame scheißt aus. Vielleicht bin ich mit Bash zurückgeblieben?Wie kann ich lame verwenden, um WAV-Dateien in einem Shell-Skript zu codieren?
#!/bin/bash
year=2008;
artist="New Kids On The Block";
album="The Block";
bitrate=320;
lame="lame -b $bitrate --ta \"$artist\" --tl \"$album\" --ty $year"
function first_half
{
for ((i=1;i<10;i++)); do
$lame "track_0$i.wav" "track_0$i.mp3";
done;
}
function second_half
{
for ((x=10;x<18;x++)); do
echo $lame "track_$x.wav" "track_$x.mp3";
done;
}
first_half &
first_pid=$!
#second_half &
#second_pid=$
Hier ist die Ausgabe des Skripts.
[email protected]:~/ogg/noartist/unknown_disc$ ./encode.sh
[email protected]:~/ogg/noartist/unknown_disc$ lame: excess arg The
lame: excess arg The
Lame beschwert sich für jede Schleife Iteration ... natürlich.
Ich änderte das Skript, um eine der Wiederholungen der Schleife auszugeben, und dies wird ausgegeben.
lame -b 320 --ta "New Kids On The Block" --tl "The Block" --ty 2008 track_01.wav track_01.mp3
Dies funktioniert Linie in Ordnung auf der Shell ... Ich bin verwirrt. Was mache ich hier falsch? Ich weiß, dass es mit den Leerzeichen in meinen Variablen zu tun hat, aber ich bin mir nicht sicher, wie ich es beheben soll.