Ejecutando un script zenity con declaraciones if

Ejecutando un script zenity con declaraciones if

Tengo problemas para escribir un guión para 'zenity'. Mi intención es seleccionar un comentario al azar de una lista y luego mostrarlo en la pantalla para que el usuario lo vea. Para ser honesto, me gustaría que el programa se ejecutara automáticamente cada dos horas aproximadamente, pero no tengo idea de cómo lograrlo. Soy nuevo en las secuencias de comandos bash y simplemente estoy tratando de enseñármelo a mí mismo a través de búsquedas en Google, la guía de secuencias de comandos bash y prueba y error. Al final, este programa generará un comentario estúpido aleatorio cada dos horas; puramente para alivio cómico.

#! /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

De todos modos, estoy teniendo muchos problemas con las declaraciones "si". Por lo que he aprendido hasta ahora, me parece correcto; pero no obtengo más que errores a pesar de muchos intentos de edición. Seguramente me gustaría recibir ayuda de cualquier persona interesada.

Gracias

Respuesta1

El guión es casi bueno. Pero tengo un problema con los corchetes cuando los uso if. Deben ser corchetes ( [ ... ]):

#!/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"

Ver también las demás pequeñas modificaciones.

Más sobre:

Respuesta2

Yo optaría por una configuración ligeramente diferente, usando una matriz:

#!/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 última línea es donde suceden todas las cosas inteligentes. ${#comments[@]}representa la cantidad de elementos en la matriz de comentarios, por lo que encontramos un número entre 0 y ese número (0-3) y sumamos 1.

información relacionada