#1 Le 01/03/2019, à 16:12
- solivier
Attendre minutes pair à 0s et toutes les 15s
Bonjour,
Je suis actuellement entrain de chercher deux fonction pour attendre le début des minutes pair et une autre pour toute les 15s:
wait_0 () {
while [[ ("$(( $(date +"%M") % 2))" -ne 0 ) || ("$(( $(date +"%S")))" -ne 0 ) ]]
do
sleep 1
done
}
wait_0 () {
while [[ ( $(( $(date +"%S") %15)) -ne 0 ) ]]
do
sleep 1
done
}
Il s'avère que j'ai ces messages d'erreurs::
value too great for base (error token is "08")
ou
value too great for base (error token is "09")
Pouvez vous m'éclairer sur le problème et la manière de procéder?
Merci par avance.
Hors ligne
#2 Le 01/03/2019, à 17:51
- pingouinux
Re : Attendre minutes pair à 0s et toutes les 15s
Bonjour,
Il faut choisir un format de date qui n'ajoute pas un 0 devant les nombres à un chiffre.
while [[ ("$(( $(date +"%_M") % 2))" -ne 0 ) || ("$(( $(date +"%_S")))" -ne 0 ) ]]
while [[ ( $(( $(date +"%_S") %15)) -ne 0 ) ]]
Ajouté :
La raison en est qu'un nombre commençant par un 0 est considéré comme de l'octal.
Dernière modification par pingouinux (Le 01/03/2019, à 17:54)
Hors ligne
#3 Le 01/03/2019, à 19:15
- Watael
Re : Attendre minutes pair à 0s et toutes les 15s
salut,
le sous-shell n'est pas requis :
[[ $(( $(date..)%2)) -ge 1 ||...
les double-crochets ne sont pas indispensables :
test $(( $(date ...)%2)) -ge 1 -o $((...)) -ge 1
en bash, le test est superflu :
(( $(date..) >= 1 || $(date..) >= 1 ))
directement.
enfin, dans le cas de figure présent, je préfère until.
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne