Bash 如何使用“2”变量;至于;Shell脚本中的语句

Bash 如何使用“2”变量;至于;Shell脚本中的语句,bash,shell,ffmpeg,multimedia,video-editing,Bash,Shell,Ffmpeg,Multimedia,Video Editing,我想用f和v作为变量。f*.mkv和v*.mp3 for f in *.mkv v in *.mp3; do ffmpeg -i "$f" -i "$v" -vcodec copy merge_"$f" done 我不知道如何正确地做这件事。我对bashshell脚本还是新手 我希望有人能帮助我。如果*.mp3和*.mkv基本名称相同: for f in *.mkv; do mp3name="${f%.mkv}.mp3" ffmpeg -i "$f" -i "$mp3n

我想用f和v作为变量。f*.mkv和v*.mp3

for f in *.mkv v in *.mp3; do 
   ffmpeg -i "$f" -i "$v" -vcodec copy merge_"$f"
done
我不知道如何正确地做这件事。我对bashshell脚本还是新手


我希望有人能帮助我。

如果
*.mp3
*.mkv
基本名称相同:

for f in *.mkv; do
    mp3name="${f%.mkv}.mp3"
    ffmpeg -i "$f" -i "$mp3name" -vcodec copy "merge_${f}"
done

如果您正在寻找一种通过原始代码循环变量的方法,您可以这样做:

f=(*.mkv)
v=(*.mp3)
for((i=0;i<${#f[@]};i++));do
echo "${f[$i]} ${v[$i]}"
done
for f in *.mkv;do
v="${f/%mkv/mp3}"
echo "$f $v"
done
“${f/%mkv/mp3}”中
mkv
最后被
mp3
替换


有关更多信息,请参阅。

mkv和mp3文件是否有共同的名称?您正在尝试配对文件吗?您是否查看了:可能相似或重复。非常感谢,您的答案对我非常有用:)