「zenity」のスクリプトを書くときに問題があります。私の意図は、コメントをリストからランダムに選択し、画面に表示してユーザーに表示することです。正直に言うと、プログラムが2時間ごとに自動的に実行されるようにしたいのですが、それを実現する方法がわかりません。私は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'ステートメントで多くの問題を抱えています。私がこれまでに学んだことから、それは私には正しいように見えます。しかし、多くの試みられた編集にもかかわらず、私はエラーのみを受け取ります。興味のある方は是非手伝ってください。
ありがとう
スクリプトはほぼ良好です。ただし、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"
他の小さな変更も参照してください。
詳細:
配列を使用して、少し異なる設定を行います。
#!/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を追加します。