我正在尝试下面的脚本,我希望在 date1 的 filesdir 文件夹中收到两个文件。如果日期为 1,那么它应该检查是否收到两个文件,这就是为什么我尝试在每次迭代和检查循环时增加计数器“计数”。如果日期为 1 并且未收到文件,则应等待几秒钟并再次检查(因为肯定会收到文件)。如果 date 不为 1,那么它应该删除这些文件并退出 while 循环。我正在尝试以下。
day_of_month=$(date +%d)
export filesdir=/dir1/dir2/dir3
local count=0
numFilesReceived=0
while true; do
files=$(find $filesdir -name '*.txt.gz' -type f -mmin -1)
if [ "$day_of_month" == "1" ]; then
if [ -f "$files" ]; then
count=$((count + 1))
break
if [ "$numFilesReceived" == "$count" ]; then
echo "All $count data received!"
break 3
fi
fi
else
echo "No data received yet!"
fi
fi
else
rm $files
fi
done
我没有得到我真正想要的东西。相反,在 if else 部分出现错误。
答案1
s的数量fi
应等于if
s 的数量。目前您的 s 太多fi
。
带有is 、 not 的单个if
表达式的结构。else
if... then... else... fi
if... then... fi... else... fi