
Estou tendo problemas para escrever um script para 'zenity'. Minha intenção é que um comentário seja selecionado aleatoriamente em uma lista e depois exibido na tela para o usuário ver. Para ser sincero, gostaria que o programa fosse executado automaticamente a cada duas horas ou mais, mas não tenho ideia de como fazer isso acontecer. Sou novo em scripts bash e estou simplesmente tentando ensiná-los a mim mesmo por meio de pesquisas no Google, do guia de scripts bash e de tentativa e erro. Este programa irá, no final, gerar um comentário estúpido aleatório a cada duas horas; puramente para alívio 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 qualquer forma, estou tendo muitos problemas com as declarações 'if'. Pelo que aprendi até agora, parece-me certo; mas não recebo nada além de erros, apesar de muitas tentativas de edição. Eu certamente gostaria de alguma ajuda de qualquer pessoa interessada.
Obrigado
Responder1
O roteiro é quase bom. Mas tenho um problema com colchetes ao usar if
. Devem ser colchetes ( [ ... ]
):
#!/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"
Veja também as outras pequenas modificações.
Mais sobre:
Responder2
Eu optaria por uma configuração um pouco diferente, usando um array:
#!/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[@]}]]}"
A última linha é onde todas as coisas inteligentes acontecem. ${#comments[@]}
representa o número de elementos na matriz de comentários, portanto, encontraremos um número entre 0 e esse número (0-3) e adicionaremos 1.