以下のスクリプトを試しています。 date1のfilesdirフォルダに2つのファイルを受け取りたいです。日付が1の場合、両方のファイルが受信されたことを確認する必要があるため、繰り返しループを確認するたびにカウンタ「カウント」を増やそうとします。日付が1でファイルが受信されない場合は、数秒待ってからもう一度確認する必要があります(ファイルは確実に受信されるため)。日付が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の数はsの数fi
と同じでなければなりません。if
現在が多すぎますfi
。
is、notを含む単一式if
の構造です。else
if... then... else... fi
if... then... fi... else... fi