You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改Termux脚本实现动画与音乐命令并行运行同步输出?

Termux脚本实现动画与音乐并行同步运行

需求概述

现有Termux下的Bash脚本已实现echo/figlet + lolcat的终端动画效果,需要添加音乐播放功能,让动画与音乐同时运行,且终端动画输出不受干扰。

前置准备

先安装所需依赖工具(若未安装):

pkg install mpv lolcat figlet -y
  • mpv:用于后台播放音乐(也可替换为Termux自带的termux-media-player)
  • lolcat/figlet:维持原有动画效果

修改后的完整脚本

#!/data/data/com.termux/files/usr/bin/bash

command_not_found_handle() {
    /data/data/com.termux/files/usr/libexec/termux/command-not-found "$1"
}

# 替换为你的音乐文件绝对路径,示例:/storage/emulated/0/Music/your_song.mp3
MUSIC_FILE="/path/to/your/music.mp3"

# 后台启动音乐播放,--no-terminal 避免mpv输出干扰终端动画
mpv --no-terminal "$MUSIC_FILE" &
# 记录音乐进程ID,用于脚本结束时终止音乐
MUSIC_PID=$!

tput civis
clear

echo
echo "
                    < ━━━━━━━━━━━━━━ [★] T E R M U X [★] ━━━━━━━━━━━━━━ >  " | lolcat -d 10 -a
echo

echo
figlet -f ASCII-Shadow '     123456' | lolcat -a -d 5
currentDate=$(date)
echo "$currentDate" | lolcat
myip=$(ifconfig | grep 'inet' | grep -v '::1' | grep -v '127.0.0.1' | awk 'NR==1{print $2}')

echo "
                   < ━━━━━━━━━━━━━━━ [★] $myip [★] ━━━━━━━━━━━━━ > " | lolcat
echo

tput cnorm

# 动画完成后终止音乐进程(可选,若希望音乐随脚本结束停止)
kill $MUSIC_PID 2>/dev/null

核心逻辑说明

  • 后台运行音乐:用&将音乐播放命令放到后台,不阻塞前台动画执行
  • 隔离输出:mpv --no-terminal参数避免音乐播放器的日志输出干扰终端动画
  • 进程管理:通过$!获取后台音乐进程ID,在动画结束后用kill终止音乐,避免音乐持续播放
  • 替代方案:若不想用mpv,可替换为Termux自带工具,命令改为:termux-media-player play "$MUSIC_FILE" &

内容的提问来源于stack exchange,提问作者Abbas Al souroush

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 06:10:38