[英]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
通常的假设是, mkv
和mp3
的文件数相同。
或者,如果文件具有相同的基本名称,则可以执行以下操作:
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.