我正在尝试通过带有空格的变量来设置艺术家信息。跛脚废话。也许我被 bash 智障了?
#!/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=$
这是脚本的输出。
user@host:~/ogg/noartist/unknown_disc$ ./encode.sh
user@host:~/ogg/noartist/unknown_disc$ lame: excess arg The
lame: excess arg The
Lame 抱怨每次循环迭代......当然。
我更改了脚本以回显循环的迭代之一,这就是输出的内容。
lame -b 320 --ta "New Kids On The Block" --tl "The Block" --ty 2008 track_01.wav track_01.mp3
这在外壳上工作正常......我很困惑。我在这里做错了什么?我知道这与我的变量中的空格有关,但我不确定如何解决它。