Bash スクリプトの問題

Bash スクリプトの問題

スクリプトを作成中です...何が問題なのかわかりません...

!#/bin/bash
while="true"
while ($while == "true") do
clear
echo "What game would you like to play?"
echo "1. Tetris (bastet)"
read number -P "Enter Number:"
if ( $number == "1" ) then
bastet
clear
read again -P "Would you like to play another game? [y/n]:"
if ($again == "n") then
exit
fi
fi
done

これは私の出力です(ループします):

What game would you like to play?
1. Tetris (bastet)

読み取りコマンドからのプロンプトなし

答え1

ここで、コード表形式が問題や間違いを見つける上で大きな違いを生みます。問題は、if文スクリプトがループから抜け出すことを決して許可しません。また、steeldriver と user4556274 が指摘したいくつかのエコーやその他のものも欠落しています。

あなたが書いたものを実際に再コーディングしたわけではないので、どこで間違えたのかは依然として把握できます。

私の改訂版をご覧ください:

#!/bin/bash

flag="true"
while [ $flag == "true" ]; do
        clear
        echo "What game would you like to play?"
        echo "1. Tetris (bastet)"
        read number -P "Enter Number:"

        if [ $number -eq "1" ]; then
                bastet
        fi

        clear
        echo "Would you like to play another game? [y/n]:"
        read again -P

        if [ $again -eq "n" ]; then
                exit 1
        fi
done

答え2

スクリプトには他にもいくつか間違いがありますが、read に関する具体的な質問に答えると、構文がいくつかの点で間違っています。

read -p "Enter Number:" number代わりに試してください

ここに関する便利なページです読む

関連情報