我在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
}
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
声明。