迭代等于文件名bash

问题描述 投票:0回答:1

我在bash中有一个小脚本,我遇到了equals的问题。我在.mp4中有80个文件,我想将所有电影加入1,所以我写了一个脚本。我的文件名是例如2.mp4 5.mp4 10.mp4等...他们不是有序的,我没有例如13,14,15.mp4但我有12.mp4和16.mp4

我想在我的循环函数中等于迭代与文件名,我不知道如何...

for((i=1; i <= 200; i++))
{    
        if[ -f "$i.mp4" == WHAT HERE??? ] ; then
                mkvmerge -o /home/ftpuser/movies/Main/out/$i.mp4 /home/ftpuser/movies/Movie/test.mp4 \+ /home/ftpuser/movies/addMovie/$i.mp4
        else
                echo -e "${RED}Null${NC}"

fi
} 
linux bash
1个回答
2
投票

if [ -f ${i}.mp4 ] ; then这个。如果文件存在,then案例将运行。否则,else会。

检查是否在包含mp4文件的目录中运行脚本。如果不是,请写下文件的完整路径,如:if [ -f /pull/path/to/your/file/${i}.mp4 ]; then

您也可以尝试运行:

#!/bin/bash

for files in /full/path/to/your/mp4/files/*
do
    name=$(basename ${files})
    mkvmerge -o /home/ftpuser/movies/Main/out/${name} /home/ftpuser/movies/Movie/test.mp4 \+ /home/ftpuser/movies/addMovie/${name}
done

在这里你不需要if声明。

© www.soinside.com 2019 - 2024. All rights reserved.