背景 我是新手來砸腳本,並通過谷歌搜索我已經得到儘可能我有。bash腳本停止,但如果我使用EXEC的回聲,而不是腳本的輸出完畢
我有兩個文本文件:包含 「Filemp3.txt」
SONGNAME - artist.mp3
songname2 - artist2.mp3
songname3 - artist3.mp3
和Fileogg.txt包含
songname - artist.ogg
songname2 - artist2.ogg
songname3 - artist3.ogg
我將使用SOX從MP3轉換爲奧格。
我有以下bash腳本:
#!/bin/bash
exec 3<Fileogg.txt
while read mp3; do
read -u3 ogg
echo sox "Musicmp3/$mp3" "Musicogg/$ogg"
done <Filemp3.txt
這個輸出正是我想通過線運行線路的命令。
[email protected]:~$ ./convert-mp3-ogg.sh
sox Musicmp3/songname - artist.mp3 Musicogg/songname - artist.ogg
sox Musicmp3/songname2 - artist2.mp3 Musicogg/songname2 - artist2.ogg
sox Musicmp3/songname3 - artist3.mp3 Musicogg/songname3 - artist3.ogg
但是,當我編輯腳本來執行,例如, EXEC SOX「Musicmp3/$ MP3」,「Musicogg/$ OGG」 ......在腳本運行&的OGG文件被創建,但只對第一個文件名。
我假定這是我的bash腳本問題的OGG文件播放罰款,紅襪不顯示我所知道的任何錯誤。
爲什麼不直接使用源的一個文件,並做 「SOX Muxicmp3/$ MP3 Musicogg/$ {MP3%MP3} OGG」 - 使用輸入文件名稱,但更改目的地的擴展名?或者你有一些你想將'x.mp3'轉換爲'y.ogg'的情況? – twalberg