こんにちは 奥井です。 スクリプトを作ったのですが動作が理解できないのでご教授お願い致します。 カメラを使ったソフトを使用しています。そのソフトは画面上で動きを検出すると音をならすようになっています。(コマンドで指定) うごく度に鳴るのが不便なので一回音を鳴らしたら1分間は鳴らさないようなスクリプトをplay/usr/share/sound/***.wavの代わりに実行させようと考えました。以下のスクリプト シェルはbashです 24時間を秒数に変換して+60したものをnext_alarm_timeに入力してexportしてます。(方法が間違っているのかexport自体できないのか?) #/bin/sh hour=`date +%H` min=`date +%M` sec=`date +%S` current_time=$((hour*60*60+min*60+sec)) echo $current_time echo $next_alarm_time if [ $current_time -gt $next_alarm_time ] ;then play /usr/share/sounds/phone.wav #1分以上 export next_alarm_time=$((current_time+60)) echo $current_time echo $next_alarm_time else play /usr/share/sounds/login.wav #1分以内 fi 結果は以下 [alpha@etower alpha]$ ./alarm 63065 10000 63065 63125 実行前にnext_alarm_timeは10000をセットしてましたがスクリプト実行後もnext_alarm_timeは10000のままで63125にかわってませんでした。 echo $next_alarm_timeで確認 又、時々エラーがでますがその理由も分りません。 値の問題かと思いましたがhour=23,min=59,sec=59ではエラーはでませんでした。 next_alarm_timeに値を入力する方法とエラーの原因をご教授ください。 [alpha@etower alpha]$ ./alarm ./alarm: 09: value too great for base (error token is "09") 10000 ./alarm: [: -gt: unary operator expected