并不是每个命令都是在while循环中执行的



我正在尝试制作一个看起来像文件夹的脚本,并将使用手刹自动编码进入该文件夹的文件。我想使用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中的第一个文件运行良好,它对其进行编码没有问题,并删除了旧版本,但它不执行列表中的任何其他操作

从这里开始

简单的解决问题

echo "" | HandBrakeCLI ......

HandBrakeCLI ...... < /dev/null

最新更新