使用 if 语句运行 zenity 脚本

使用 if 语句运行 zenity 脚本

我在为“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

无论如何,我对“if”语句有很多困惑。从我目前所了解的情况来看,它对我来说是正确的;但尽管尝试了很多次编辑,但我得到的只是错误。我当然希望任何感兴趣的人能给我一些帮助。

谢谢

答案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。

相关内容