1 votes

Exécuter un script de zenity avec des instructions if

J'ai un problème pour écrire un script pour 'zenity'. Mon intention est d'avoir un commentaire sélectionné au hasard dans une liste et ensuite affiché à l'écran pour que l'utilisateur le voie. Pour être honnête, j'aimerais que le programme s'exécute automatiquement toutes les deux heures environ, mais je n'ai pas la moindre idée de la façon de le faire. Je suis nouveau dans le domaine des scripts bash et j'essaie simplement de me l'enseigner par des recherches sur Google, le guide des scripts bash et des essais et erreurs. Ce programme générera, au final, une remarque stupide aléatoire toutes les deux heures ; purement pour le côté comique.

#! /bin/bash

#Create a random number between 0 and 3
RANGE=4
number=$RANDOM
let "number %= $RANGE"

echo $number
#Set random number generated above to select from list of comments.

if ($number == 0); then
    COMMENT=Comment0
elif ($number == 1); then
    COMMENT=Comment1
elif ($number == 2); then
    COMMENT=Comment2
elif ($number == 3); then
    COMMENT=Comment3

echo $COMMENT

zenity --warning --title='!!!WARNING!!!' text=$COMMENT

Quoi qu'il en soit, j'ai beaucoup de mal avec les instructions "if". D'après ce que j'ai appris jusqu'à présent, tout me semble correct, mais je n'obtiens que des erreurs malgré de nombreuses tentatives de modification. J'aimerais que toute personne intéressée m'aide.

Gracias

1voto

Radu Rădeanu Points 156862

Le script est presque bon. Mais j'ai un problème avec les parenthèses quand on utilise if . Ceux-ci doivent être entre crochets ( [ ... ] ):

#!/bin/bash

#Create a random number between 0 and 3
RANGE=4
number=$RANDOM
let number%=$RANGE

echo $number
#Set random number generated above to select from list of comments.

if [ $number = 0 ]; then
    COMMENT="Comment0"
elif [ $number = 1 ]; then
    COMMENT="Comment1"
elif [ $number = 2 ]; then
    COMMENT="Comment2"
elif [ $number = 3 ]; then
    COMMENT="Comment3"
fi

echo $COMMENT

zenity --warning --title="!!!WARNING!!!" --text="$COMMENT"

Voir aussi les autres petites modifications.

En savoir plus :

0voto

Mufaka Points 54

J'opterais pour une configuration légèrement différente, en utilisant un tableau :

#!/bin/bash

comments[1]="This is the first comment"
comments[2]="This is the second comment"
comments[3]="This is the third comment"
comments[4]="This is the last comment"

zenity --warning --title="Raa" --text="${comments[ 1 + RANDOM % ${#comments[@]}]]}"

La dernière ligne est celle où tous les trucs intelligents arrivent. ${#comments[@]} représente le nombre d'éléments dans le tableau de commentaires, donc nous trouvons un nombre entre 0 et ce nombre (0-3) et ajoutons 1.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X