Запуск скрипта zenity с операторами if

Запуск скрипта zenity с операторами if

У меня проблема с написанием скрипта для 'zenity'. Я хочу, чтобы комментарий выбирался случайным образом из списка и отображался на экране для просмотра пользователем. Честно говоря, я бы хотел, чтобы программа запускалась автоматически каждые два часа или около того, но я понятия не имею, как это сделать. Я новичок в написании скриптов bash и просто пытаюсь научиться этому сам с помощью поиска в Google, руководства по написанию скриптов bash и проб и ошибок. В конце концов, эта программа будет генерировать случайное глупое замечание каждые пару часов; чисто для комического эффекта.

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

В любом случае, у меня большие проблемы с утверждениями «если». Из того, что я узнал на данный момент, мне кажется, что все правильно; но я получаю только ошибки, несмотря на многочисленные попытки редактирования. Я бы очень хотел получить помощь от любого заинтересованного.

Спасибо

решение1

Скрипт почти хорош. Но есть проблема со скобками при использовании if. Это должны быть квадратные скобки ( [ ... ]):

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

См. также другие небольшие изменения.

Больше о:

решение2

Я бы выбрал немного другую настройку, используя массив:

#!/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[@]}]]}"

В последней строке происходит вся хитрость. ${#comments[@]}представляет собой количество элементов в массиве комментариев, поэтому мы находим число от 0 до этого числа (0-3) и прибавляем 1.

Связанный контент