
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.