Executando um script zenity com instruções if

1

Estou com um problema ao escrever um script para "zenity". Minha intenção é ter um comentário selecionado aleatoriamente em uma lista e, em seguida, exibido na tela para o usuário ver. Para ser sincero, gostaria que o programa fosse executado automaticamente a cada duas horas, mais ou menos, mas não faço ideia de como fazer isso acontecer. Eu sou novo para bash scripting e estou simplesmente tentando ensiná-lo a mim mesmo através de pesquisas do Google, o guia de script bash e tentativa e erro. Este programa irá, no final, gerar uma observação estúpida aleatória 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 certo para mim; mas recebo apenas erros apesar de muitas tentativas de edição. Eu certamente gostaria de alguma ajuda de qualquer pessoa interessada.

Obrigado

    
por risto 29.10.2013 / 07:15

2 respostas

1

O roteiro é quase bom. Mas tenha um problema com colchetes ao usar if . Estes 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:

por Radu Rădeanu 29.10.2013 / 09:23
0

Eu escolheria uma configuração um pouco diferente, usando uma 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[@]}]]}"

A última linha é onde todas as coisas inteligentes acontecem. ${#comments[@]} representa o número de elementos na matriz de comentários, então estamos encontrando um número entre 0 e esse número (0-3) e adicionando 1.

    
por Oli 29.10.2013 / 14:42