ディレクトリに12個のファイルがあることを確認する必要があります。このループはファイルが1つしかない場合にうまく機能し、「sleep 300」を使用して4回繰り返されます。ただし、ファイルがまったくない場合は失敗し、繰り返されません。ファイルがまったくなくても繰り返されるようにするには、何を追加できますか?簡単に言えば、20分のファイル転送時間を確認したいと思います。
retry() {
attempt_num=0
while [[ `ls -1 *File*${JulianDate}.* | wc -l` -lt 12 ]]
do
ベストアンサー1
ls
出力を解析しません。。ファイルのリストを配列として読み込み、配列のサイズを確認します。
retry() {
while true; do
files=( *File*${JulianDate}.* )
(( ${#files[@]} >= 12 )) && break
sleep for some amount
done
do stuff with 12 or more files ...
}