编写一个点歌程序sing.sh 从歌手名单singers.txt里随机抽取歌手,从song.txt文件里随机抽一首歌曲,当所有的歌手都抽取完后或者所有的歌曲唱完后,都可以重新开始.
#!/bin/bash
# 歌手名单和歌曲列表文件
SINGERS_FILE="singers.txt"
SONGS_FILE="song.txt"
# 读取歌手和歌曲到数组
mapfile -t singers < "$SINGERS_FILE"
mapfile -t songs < "$SONGS_FILE"
# 初始化歌手和歌曲的索引数组
singer_indices=($(seq 0 $((${#singers[@]} - 1))))
song_indices=($(seq 0 $((${#songs[@]} - 1))))
# 主循环
while true; do
# 从歌手索引数组中随机选择一个索引
singer_index=$((RANDOM % ${#singer_indices[@]}))
selected_singer_index=${singer_indices[$singer_index]}
# 从歌曲索引数组中随机选择一个索引
song_index=$((RANDOM % ${#song_indices[@]}))
selected_song_index=${song_indices[$song_index]}
# 输出选中的歌手和歌曲
echo "Selected Singer: ${singers[$selected_singer_index]}"
echo "Selected Song: ${songs[$selected_song_index]}"
echo "-------------------------"
# 休眠2秒模拟歌曲播放
sleep 2
done
使用方法:
- 确保你的环境中存在名为
singers.txt
和song.txt
的文件,并且它们的内容符合你给出的示例。- 将上面的脚本保存为
sing.sh
。- 给脚本执行权限:
chmod +x sing3.sh
。- 运行脚本:
./sing.sh
。这个脚本会持续运行,不断随机选择歌手和歌曲进行“点歌”,直到你手动停止它(例如,使用
Ctrl + C
)。