2014-01-11 49 views
0
#/bin/bash 
ls |sort -R |tail -$N |while read file; do 
mpg123 "$file" 
sleep 3 
done 

任何想法爲什麼它只能播放10首mp3並退出? 有數以百計的MP3在同一目錄下這個文件(playmusic.sh)mpg123只播放10首歌曲,然後退出

感謝

+1

也許'$ N'是10? –

+0

所以我可以完全忽略$ N? – phpmydev

+3

10行是頭部和尾部的默認輸出計數。如果$ N沒有被定義,那麼這段代碼就會成爲'tail -',告訴tail從stdin中讀取,這將是'sort'的輸出....並且最終只有10行(文件名)正在播放 –

回答

0

正如馬克乙說的發生是由於變量N未設置導致tail默認爲它的默認問題(顯然,如果N實際設置爲10,也可能發生。)

這裏的根本問題是你不明白這段代碼實際上做了什麼。我懷疑你自己實際上沒有寫這個代碼。即使它是一個bash腳本,它也期望一個變量N被設置。這是一個bash腳本高度非正統的,你通常會使用

$1 

,而不是$N,或者更好的是

${1:?} 

這將立即顯示錯誤並退出,如果你忘了在傳遞命令行參數。

相關問題