Запуск скрипта 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
задан 29 October 2013 в 10:15

2 ответа

Сценарий почти хорош. Но есть проблема с скобками при использовании 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"

См. Также другие небольшие модификации.

Подробнее о:

0
ответ дан 29 October 2013 в 10:15

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

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

0
ответ дан 29 October 2013 в 10:15

Другие вопросы по тегам:

Похожие вопросы: