私は今日の単語(毎日ランダムに)を表示するbashスクリプトを作成しようとしています。辞書ファイルがあり、各行には単語とその定義があります。
date
私はそれを使用して毎日のユニークな価値を得たいと思います。このように
today=$(date '+%Y%m%d') # will return 20160616 (for today)
これで、この値を使用して辞書ファイルから取得できる行番号を生成したいと思います。
私の辞書が86036
長すぎてからの間の値に変換する必要があります$today
。1
86036
これを行う最良の方法は何ですか?
ベストアンサー1
少し異なる解決策:cronジョブを使用して、毎日テキストファイルの行を混在させます。その後、スクリプトは最初の行を選択します。
Cronタスク(sort
ランダムにデータを「並べ替える」ことができるタスクが必要-R
):
0 0 * * * sort -R -o wotd_data.txt wotd_data.txt
またはcron
理解している場合@daily
(参照man 5 crontab
):
@daily sort -R -o wotd_data.txt wotd_data.txt
スクリプト:
head -n 1 wotd_data.txt
wotd_data.txt
明らかにフルパスが必要です。