2

参照時間から時間をカウントすることを知っているLinux tで、単純なksh/bashスクリプトなどを構築する必要があります

次のように日付コマンドを入力すると:

   date

   Wed Jul 17 18:13:27 IDT 2013

また

   [root@linux /var/tmp]# current_time=` date `
   [root@linux /var/tmp]# echo $current_time

                          Wed Jul 17 18:21:51 IDT 2013  

だから私はここに現在の日付を取得します。

私が必要とするのは、たとえば現在の日付から 10 分をカウントすることです。

10分後にメッセージを出力します

     echo “sorry 10 min was ended“

基準時間から時間をカウントする方法は?

4

2 に答える 2

4

bash内蔵タイマーのようなものがあります。パラメータ$SECONDSは、シェルが開始されてから経過した秒数で継続的に更新されます。この変数に割り当てることができます。その場合、その値は基本的に毎秒増加します。

いくつかの例:

$ SECONDS=0
$ sleep 10
$ echo $SECONDS
10

$ SECONDS=0
$ while (( SECONDS < 600 )); do
>  sleep 10
> done
于 2013-07-17T13:56:07.373 に答える
1

date +%sUnix 時刻 (1970 年 1 月 1 日木曜日の協定世界時 (UTC) 00:00:00 からの秒数) を取得するために使用し、算術展開を使用します。

current_time=$(date +%s)
elapsed_time=$(( $(date +%s) - $current_time ))

$elapsed_timeは からの秒数です$current_time$elapsed_time > 600その後、ループ内にあるかどうかを確認できます。

編集:完全を期すために:

if [[ $elapsed_time > 600 ]]; then
   echo "sorry 10 min was ended"
fi

これは、bash と ksh の両方で機能するはずです。

于 2013-07-17T13:31:30.430 に答える