Přihlásit
: [1]
   |   
: Náhodný čas ve skriptu  ( 3062 )
RadimR


« : October 29, 2009, 17:05:51 »

Jakým způsobem realizovat část skriptu, ve kterém bych potřeboval aby v časovém rozmezí např. mezi 12:00 a 14:00hodin byl náhodně vybrán čas (např. 13:18) a v tento čas pak byl vykonán příkaz ve skriptu.

Díky
Peťoš
Global Moderator
Hero Member
*****

Karma: 188
: 6 712



« #1 : October 29, 2009, 18:30:12 »

jo, dá. Musel bych si s tím pohrát, ale jako základ bych viděl nějaký prográmek  (už jsem kdysi programoval náhodný generátor čísel), který vyhodí číslo od 0 do 120. Pomocí podmínek (větší nebo menší 60) z toho vytáhneš 2 čísla. 0 nebo 1 bude první a druhé bude od 0 do 59.
A nakonec použiješ at a dáš mu tyto dvě proměnné na místě hodin [0,1] a minut [0--59].
Ale doufám, že se nebudeš zlobit, když Ti to tu nebudu programovat Postup víš, teď jen jej uplatnit do praxe
« : October 29, 2009, 18:32:44 Peťoš »

Do it or do not. There is no "try".

Peťošův repozitář je na adrese: http://petos.cz/rpms
Fotoblog: http://vzducholode.blogspot.com a http://petos.cz/category/fotky
RadimR


« #2 : October 31, 2009, 09:59:01 »

Nakonec jsem to vyřešil velmi jednoduše následujícím způsobem:

#!/bin/bash
hod="`echo $((RANDOM % 24))`"
min="`echo $((RANDOM % 60))`"
s="`echo $((RANDOM % 60))`"
echo "$hod":"$min":"$s"

Podmínky intervalu bych měl vyřešit jakým způsobem?

if $hod > 10 or = 10 then echo "hod"

nějakým takovým způsobem?
pert2
Sr. Member
****

Karma: 9
: 291


« #3 : October 31, 2009, 20:08:05 »

Třeba:
[ "$hod" -ge "10" ]; echo $hod

RadimR


« #4 : October 31, 2009, 21:25:58 »

dobre, a ten interval treba od 12-15?
Peťoš
Global Moderator
Hero Member
*****

Karma: 188
: 6 712



« #5 : October 31, 2009, 21:31:05 »

dobre, a ten interval treba od 12-15?
Dve podmínky.
První překontroluje, že je to větší než 12, a druhá tj.
:

#!/bin/bash

UDELEJ=0

hod="`echo $((RANDOM % 24))`"
min="`echo $((RANDOM % 60))`"
s="`echo $((RANDOM % 60))`"

if [ "$hod" -gt 12 ]; than
    if [ "$hod" -lt 15 ]; than
        UDELEJ=1
    else
        SPUST_ZNOVU=1
        UDELEJ=0
     fi
else
SPUST_ZNOVU=1
UDELEJ=0
fi

if [ "$UDELEJ" = 1 ]; than
     echo "$hod":"$min":"$s"
fi
« : October 31, 2009, 21:33:37 Peťoš »

Do it or do not. There is no "try".

Peťošův repozitář je na adrese: http://petos.cz/rpms
Fotoblog: http://vzducholode.blogspot.com a http://petos.cz/category/fotky
RadimR


« #6 : October 31, 2009, 21:53:15 »

jj to uz vypada dobre, jen nevim proc se mu nelibi syntaxe prvniho else mezi

         UDELEJ=1
else
        SPUST_ZNOVU=1
strublos
Sr. Member
****

Karma: 9
: 336



« #7 : October 31, 2009, 22:35:16 »

than > then
RadimR


« #8 : October 31, 2009, 22:41:56 »

ano to jsem upravil jiz, ale nevraci se mi pri nevyhovujicim intervalu na UDELEJ=0
RadimR


« #9 : October 31, 2009, 23:46:35 »

resp. urcit cyklus opakovani pokud nebude nalezena vyhovujici hodnota.
Peťoš
Global Moderator
Hero Member
*****

Karma: 188
: 6 712



« #10 : November 01, 2009, 01:43:25 »

:
#!/bin/bash

UDELEJ=0

while [ "$UDELEJ"  = 0 ]; do
hod="`echo $((RANDOM % 24))`"
min="`echo $((RANDOM % 60))`"
s="`echo $((RANDOM % 60))`"

if [ "$hod" -gt 12 ]; then
    if [ "$hod" -lt 15 ]; then
        UDELEJ=1
    else
        SPUST_ZNOVU=1
        UDELEJ=0
     fi
else
SPUST_ZNOVU=1
UDELEJ=0
fi

if [ "$UDELEJ" = 1 ]; then
     echo "$hod":"$min":"$s"
fi
done

Do it or do not. There is no "try".

Peťošův repozitář je na adrese: http://petos.cz/rpms
Fotoblog: http://vzducholode.blogspot.com a http://petos.cz/category/fotky
: [1]
   |   
 
: