2017-12-04 18 views
1

私は、Linuxスクリプトとcronを使用して、数が毎分チェックされていることを確認しています。LinuxスクリプトとCronを使用して定期的に変数を比較する

例:(。例えばソースscript.sh)

newNum = getNum() 

if oldNum != newNum: run some code 

oldNum = newNum 

(repeat every minute using crontab) 

しかし、私が午前問題は、変数はスクリプトと使用して、ソースとの間にアクセスできないということであるが故に、最新バージョンを取得し、もう一度スクリプトを実行します1分前からのものではありません。

最高のものは、現在の番号を取得した後、1分間スリープした後、本質的に上記のコードの最初の2行である2番目のスクリプトを実行する最初のスクリプトを実行することです。

例:

oldNum = getNum() 

sleep 60 

export oldNum 

script2.sh 

これは私には非効率ですし、私は可能であれば、より良い解決策があるかどうかを知りたいのです。

答えて

0

あなたは、ファイル内の前の番号をキャッシュできます。shとbashが浮動小数点演算/比較を行うことができないという

number_cache=/path/to/cache_file 

# read the previous number 
oldNum=$(< "$number_cache") 
# acquire the new number 
newNum=$(getNum) 

if [[ "$oldNum" -eq "$newNum" ]]; then 
    do_something 
fi 

# cache the new number 
printf "%d\n" "$newNum" > "$number_cache" 
+0

注意。 kshすることができます。私はzshもできると仮定します。 –

関連する問題