Cron ile günlük olarak çalıştırmayı planladığım bir senaryom var. Bununla birlikte, betiğin belirli bir bölümünün belirli bir günde çalıştırma olasılığı olan yalnızca rasgele olarak çalışmasını istiyorum.
İşte benim temel fikrim.
$ RANDOM kullanın ve tek bir rasgele rakam elde etmek için kesin:
echo $RANDOM | cut -c1
Bu basamağı değerlendirmek için if / then testini kullanın ve yalnızca belirli bir değerle eşleştiğinde uygulayın:
if [(echo $RANDOM | cut -c1) = 3]; then
echo "YES" >> ~/result.txt
fi
Ancak, bu çalışmıyor. Komut dosyası aşağıdakilerle başarısız olur:
./testscript: line 3: syntax error near unexpected token `echo'
./testscript: line 3: `if [(echo $RANDOM | cut -c1) = 3]; then'
Bence fikir sağlam, fakat sözdizimi yanlış anladığımı tahmin ediyorum.
Herhangi bir fikir?
Mac OSX 10.7.2’de bash kullanımı
Muhtemelen ilginç kurgu: koştum echo $RANDOM | cut -c1
100.000 kez ve sonra her basamağın görünme sıklığını hesapladım, bu yüzden betiği çalıştıracağı frekansı uygun değerleri seçerek ayarlayabilirim. İlginç bir şekilde ilk bakışta rakamların dağılımı Benford Yasasına uyuyor gibi görünüyor ...