if 문을 사용하여 zenity 스크립트 실행

if 문을 사용하여 zenity 스크립트 실행

'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' 문에 많은 어려움을 겪고 있습니다. 지금까지 내가 배운 바에 따르면 그것은 나에게 맞는 것 같습니다. 하지만 많은 편집 시도에도 불구하고 오류만 발생합니다. 관심 있는 분들의 도움이 되었으면 좋겠습니다.

감사해요

답변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을 더합니다.

관련 정보