Bash脚本无法读取整行

时间:2019-09-27 23:18:58

标签: bash ffmpeg

首先,我正在学习bash shell脚本的早期阶段,因此,如果我说/做任何没有意义的事情,我深表歉意。

当前,我正在尝试拥有一个SBC,特别是Khadas VIM3,运行python脚本来查找和标记本地服务器中任何给定视频中的人脸。目前,我需要降低视频的帧频和分辨率,这正是bash脚本发挥作用的地方。我需要使这个过程自动化,并认为我会使用bash脚本和crontab来完成。 找到文件路径并将其从单独的脚本输出到文件中,并由bash脚本读取。当我尝试调用ffmpeg使用文件路径时,问题就来了。

代码:

pathFile="/home/khadas/Documents/paths"

while IFS= read -r line
do
        ffmpeg -i "$line" -vf scale=960:540 -y "$line"
        cp "$line" ./
done < $pathFile

产生的错误:

: No such file or directoryalRecognition/10/14-53.h264+/2019-09-26-10-14-53.mp4
cp: cannot stat '/home/khadas/Downloads/FacialRecognition/10/14-53.h264+/2019-09-26-10-14-53.mp4'$'\r': No such file or directory

路径文件示例(将有数百个条目):

/home/khadas/Downloads/FacialRecognition/10/14-42.h264+/2019-09-26-10-14-42.mp4
/home/khadas/Downloads/FacialRecognition/10/59-06.h264+/2019-09-26-10-59-06.mp4
/home/khadas/Downloads/FacialRecognition/10/36-28.h264+/2019-09-26-10-36-28.mp4
/home/khadas/Downloads/FacialRecognition/10/14-53.h264+/2019-09-26-10-14-53.mp4

使用精简版本时,脚本按预期工作。线长可能有问题吗?任何帮助深表感谢。

1 个答案:

答案 0 :(得分:0)

  

根据错误消息,cp试图访问名称以.mp4'$'\r'结尾的文件。这似乎意味着在某处有DOS / Windows样式的行尾。如果您拥有dos2unix实用程序,请对包含/home/khadas/Documents/paths的文件运行它。

-John1024