1

我正在尝试制作一个查看文件夹的脚本,并将使用手刹自动编码进入该文件夹的文件。我想这样做监视文件夹,使用 inotify 将文件夹中的新增内容放入列表中,然后使用 cron 作业在一夜之间对它们进行编码。但是,当使用 while 循环遍历列表时,手刹仅对存在的第一个文件进行编码,然后脚本在循环之后继续,而不执行列表中的每个文件。这是调用手刹的脚本:

#!/bin/bash

while IFS= read -r line
do
    echo "$(basename "$line")"
    HandBrakeCLI -Z "Very Fast 1080p30" -i "$line" -o "$line.m4v"
    rm "$line"
done < list.txt

> list.txt

当使用简单的 echo 而不是 HandBrakeCLI 测试循环时,它可以正常工作并打印出每个文件,所以我不知道出了什么问题。

这是监视文件夹的脚本,以防出现问题:

#!/bin/bash

if ! [ -f list.txt ]
then
    touch list.txt
fi

inotifywait -m -e create --format "%w%f" tv-shows | while read FILE
do
    echo "$FILE" >> list.txt
done

任何帮助都会很棒,谢谢

编辑:更具体地说,该脚本适用于 list.txt 中的第一个文件,它对其进行编码没有问题并删除旧版本,但随后它不会执行列表中的任何其他文件

4

1 回答 1

0

取自这里

简单地解决问题

echo "" | HandBrakeCLI ......

或者

HandBrakeCLI ...... < /dev/null
于 2020-04-11T15:48:54.693 回答