0

重複の可能性:
ステートメントが条件に従っていない場合

私はそれが私のbcまたは私の変数に問題があると信じていますが、私は間違っている可能性があります。

これは私のコードの一部です。

#!/bin/bash
#this is a game that is two player and it is a race to get to 
#100 before the other player

echo "Player 1 name?"

read p1

echo "Player 2 name?"

read p2

echo "Okay $p1 and $p2. $p1 will go first"

p1s=0
p2s=0
pt=1

while [ $pt -eq 1 ]; do

    echo "roll or stay"
    read choice

if [ $choice ="r" ]; then

    die=$(($RANDOM%6+1))
if [ $choice ="s" ]; then

    echo "Okay $p1 your score is $p1s"
    echo "$p2 turn now"
    sleep 1
    count=0
    pt=2

else

    pt=1

    fi
fi

if [ $die -eq 1 ]; then

    p1s=$(echo "$p1s-$count" |bc)
    echo "You rolled a 1. Your score is $p1s"
    echo "$p2 turn now."
    sleep 1
    count=0
    pt=2

elif [ $die -gt 1 ]; then

    p1s=$(echo "$p1s+$die" |bc)
    count=$(echo "$count+$die" |bc)
    echo "You rolled a $die. Your score is $p1s"
    pt=1

fi


if [ $p1s -gt 99 ]; then

    echo "$p1 won. $p2 lost"
    echo "would you like to play again?"
    read again

else

if [ $again ="yes" ]; then

    echo "Okay one second."
    sleep 1
    clear
    bash num.sh

else

if [ $again = "no" ]; then

    exit
else

    echo "I guess no then?"
    exit
        fi
    fi
fi
done

何が起こるかこれ

プレイヤー1の名前?

1

プレイヤー2の名前?

2

わかりました1と2。1が最初に行きます

ロールまたは滞在

r

num.sh:24行目:[:r:単項演算子が必要です

num.sh:42行目:[:-eq:単項演算子が必要です

num.sh:51行目:[:-gt:単項演算子が必要です

さて、1秒。

プレイヤー1の名前?

ここでは、エラーなどが多数見つかります。その後、最初からやり直します。

前もって感謝します。

4

1 に答える 1

0

選択変数をチェックする条件付きの構文が間違っていると思います。次のように記述する必要があります。

if [ "$choice" -eq "r" ]; then
...

または拡張ブラケット付き

if [[ "$choice" == "r" ]]; then
...
于 2012-11-09T21:09:08.910 に答える