如何使用2变量" for" Shell脚本中的语句

时间:2015-07-09 19:48:34

标签: 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

我不知道如何正确地做到这一点。我仍然是bash shell脚本的新手。

我希望有人可以帮助我。

2 个答案:

答案 0 :(得分:5)

如果userImage = Ti.UI.createImageView({ id : "userImage", image : "http://graphics.ucsd.edu/~henrik/images/imgs/face_bssrdf.jpg", width : 90, center:0, height : 90, }); $.image.add(userImage); *.mp3基本名称相同:

*.mkv

答案 1 :(得分:1)

如果您正在寻找一种循环变量的方法,就像预期使用原始代码循环一样,您可以这样做:

$('table#safe-distances-table').dblclick(function () {
    var $el = $(this);
    if($el.data('toggled')){
        $el.html($el.data('all'));
        var $rowsToHide = $('tr.no-impact');
        $rowsToHide.hide();
        $rowsToHide.toggle('slow');
        $el.data('toggled',false);
    } else {
        var $rowsToHide = $('tr.no-impact');
        $el.data('all', $el.html());
        $rowsToHide.toggle('slow', function(){
            $rowsToHide.remove();
        });
        $el.data('toggled',true);
    }
});

一般情况是,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替换。

有关详细信息,请参阅Bash Parameter Expansion