我为一个简单的剧本伤了脑筋,我需要帮助。
我有下面的场景:
我有一个目录来监视脚本将在哪里运行,直到文件数量达到预期数量(退出0)或到达到期时间(退出1)
规则:
1.命中的文件数,退出0
1.达到时间限制,即使没有达到文件量,也退出0
Usage: ./filemonitor.sh <file_mask> <file_amount> <expire_time>
Eg : ./filemonitor.sh /home/abc/ dl*.txt 5 14
我不知道我说的够不够清楚我到底做错了什么?
脚本
#!/bin/bash
# Variables
now=$(date +"%H")
# User input
files_path=$1
files_msk=$2
files_qtde=$3
files_lmttime=$4
check() {
while :; do
file_count=$(find $files_path -mindepth 1 -maxdepth 1 -type f -iname "$files_msk" | wc -l)
if [ $file_count -lt $files_qtde ]; then
if [ $now -ge $files_lmttime ]; then
echo 'Time is over!'
exit 1
elif [ $now -lt $files_lmttime ]; then
echo 'On time, process running'
echo 'Wait 5 secs'
sleep 5
fi
elif [ $file_count -eq $files_qtde ]; then
echo "file count="$file_count "file expected="$files_qtde
echo 'Files OK'
exit 0
fi
done
}
check
1条答案
按热度按时间fsi0uk1n1#
问题解决了,谢谢你们.