我刚开始使用 bash,所以我希望答案并不明显。我有一个名为 playlists.txt 的文件,如下所示:
- 冷冻Dubstep PLYNrAD9Jn2WDwRrS_Uw6UR55K-c_s6EH4
- 经典 PLYNrAD9Jn2WDWZFpIG3a2tkOBtdeNAbc6
- ChilledOut PLYNrAD9Jn2WCfrUCoS22kn3pBX1XUFinE
- SlickSlickSound PLYNrAD9Jn2WDmpu3gNVxIVO8bAiOcQkx7
- 专辑、音乐会 PLYNrAD9Jn2WD3BI8o5VjmSbhZgfYh5zaX
我想将每行的第一个字符串分配给 $name,将第二个字符串分配给 $hash,然后将其发送到 script.sh 并为每一行递归地执行此操作,因为知道将来行数可能会增加。
我写了这个但它不起作用:使用这个 ->如何在 bash shell 中将一个字符串拆分为多个变量?
while read name hash
do
sh script.sh "$name" "$hash"
done < playlists.txt
我应该怎么做?先感谢您。
编辑:谢谢大家,所以我把它改成了这个,它更容易阅读。我以为,它会解决我的错误,但仍然存在......该死的。所以基本上,在 script.sh 中,这是第一部分:
cd ~/Music/Youtube\ Playlist/Playlists/$name
mv $HOME/Music/Youtube\ Playlist/Playlists/$name/TextRecords/lastoutput.txt $HOME/Music/Youtube\ Playlist/Playlists/lastoutput.txt
但是,shell 返回错误:
mv: cannot stat `/home/kabaka/Music/Youtube Playlist/Playlists//TextRecords/lastoutput.txt': No such file or directory
这意味着应该有播放列表名称的地方,什么都没有。你知道为什么吗?是不是因为我当前脚本中的 $name 和上面脚本中的 $name 不一样?请注意,对于 $hash,我也发生了同样的事情,它应该出现在 url 中,但只是空白