繁体   English   中英

我的linux bash脚本不会循环播放所有文件

[英]my linux bash script will not loop though all files

我是菜鸟,正在尝试为Plex构建后处理类型脚本。 在一些同事和Google的帮助下,我整理了以下脚本将mkv文件转换为mp4文件。

该脚本将“查找”媒体目录中的所有文件并将其转换为mp4文件。

它找到第一个,正确处理并退出-为什么? 我需要帮助才能使此单据循环。 我以这种方式编写了古怪的find命令,因此“ find”命令将捕获带有空格的文件名,而dirname命令将起作用。

剧本-

find -L "/media/4tbdisk/test/" -type f -name '*.mkv' -print0 | while IFS=      read -r -d $'\0' FILE; do
echo "filename is ---" "$FILE";
DIR=$(dirname "${FILE}");
echo "directory is --" $DIR;
transcode-video --mp4 --quick "$FILE" --output "$DIR";
done

发生的情况是该脚本将找到一个mkv文件并对其进行处理,但不会继续循环进行处理。 如果找到的第一个文件已被处理,则“转码”脚本将显示“输出文件存在...”,并将继续进行下一个操作,但是在创建第一个mp4文件后,它将停止

在此先感谢haeffnkr

您似乎正在使用此转码视频脚本。 它基于HandbrakeCLI和mplayer,它们都有过度消耗stdin的趋势,从而在第一次迭代( ex1ex2ex3ex4 )后的读取循环中中断。

您可以通过从/dev/null重定向输入来避免这种情况,这样它就不会占用任何循环输入:

find -L "/media/4tbdisk/test/" -type f -name '*.mkv' -print0 | while IFS=      read -r -d $'\0' FILE; do
echo "filename is ---" "$FILE";
DIR=$(dirname "${FILE}");
echo "directory is --" $DIR;
transcode-video < /dev/null --mp4 --quick "$FILE" --output "$DIR";
done

暂无
暂无

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

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