簡體   English   中英

讀取行時,只讀取最后一行

[英]while read line, only reading last line

我有一個小的bash腳本應該讀取文件並在mplayer中播放每一行。 但它只播放每個文件1秒,然后繼續播放下一首歌曲。 僅正確播放文件中的最后一行。 這是我到目前為止:

#!/bin/bash

file=/home/dummy/list.m3u

echo "################################"
while IFS= read -r line
        do
            echo "loadfile '$line'" > /tmp/mplayer.fifo
done < $file

文件中的行只包含mp3的路徑,如:/home/dummy/song.mp3

如何播放每一首歌並在歌曲結束后開始下一首歌?

另外,有沒有辦法以隨機順序讀取行?

提前致謝。

僅正確播放文件中的最后一行。

使用>>代替>進行追加 您正在使用>每次都會覆蓋該文件,因此您只能看到文件中的最后一行。

另外,有沒有辦法以隨機順序讀取行?

你可以使用shufsort

while IFS= read -r line
do
  echo "loadfile '$line'" >> /tmp/mplayer.fifo
done < <(shuf $file)

sort -R filename名將執行隨機排序。

#!/bin/bash

file=/home/dummy/list.m3u
shuf -n file > randomshuffled
echo "################################"
while IFS= read -r line
do
        echo "loadfile '$line'" >> /tmp/mplayer.fifo
done < $( cat randomshuffled)

請參閱>>以在文件中追加行。 如果你想清除隊列並從你的新歌開始 - 只需在while循環之前添加行echo "" > /tmp/mplayer.fifo

並且shuf file > randomshuffled用於隨機隨機播放文件中的行

你也可以使用

mplayer -shuffle -playlist /home/dummy/list.m3u

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM