繁体   English   中英

如何在Shell脚本中为“ for”语句使用2个变量

[英]How to use 2 variable for “for” statement in Shell Script

我想将f和v用于变量。 f * .mkv和v * .mp3

for f in *.mkv v in *.mp3; do 
   ffmpeg -i "$f" -i "$v" -vcodec copy merge_"$f"
done

我不知道该怎么做。 我还是bash shell脚本的新手。

我希望有一个人可以帮助我。

如果*.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

通常的假设是, mkvmp3的文件数相同。

或者,如果文件具有相同的基本名称,则可以执行以下操作:

for f in *.mkv;do
v="${f/%mkv/mp3}"
echo "$f $v"
done

"${f/%mkv/mp3}" mkv最终由mp3代替。

有关更多信息,请参见Bash参数扩展

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM