使用 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[@]}表示 comments 數組中的元素數量,因此我們找到 0 到該數字 (0-3) 之間的數字並加 1。

相關內容