Probleme mit Bash-Skripten

Probleme mit Bash-Skripten

Ich arbeite an einem Skript ... Ich weiß nicht, was damit nicht stimmt ...

!#/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

dies ist meine Ausgabe (die sich wiederholt):

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

ohne die Eingabeaufforderung des Lesebefehls

Antwort1

Hier macht ein gutes tabellarisches Codeformat den Unterschied, wenn es darum geht, Ihre Probleme und Fehler zu erkennen. Das Problem ist, dass Ihrif-Anweisunglässt das Skript niemals aus der Schleife springen. Außerdem fehlen Ihnen einige Echos und all die anderen Dinge, die steeldriver und user4556274 angegeben haben.

Ich habe das, was Sie geschrieben haben, nicht wirklich NEU CODIERT, damit Sie trotzdem ein Gefühl dafür bekommen, wo Ihr Fehler lag.

Siehe meine Überarbeitung:

#!/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

Antwort2

Es gibt noch ein paar andere Dinge, die mit Ihrem Skript nicht stimmen. Um jedoch Ihre spezielle Frage zu „read“ zu beantworten, ist die Syntax in mehrerer Hinsicht falsch:

Versuchen Sie es read -p "Enter Number:" numberstattdessen

Hierist eine nützliche Seite überlesen

verwandte Informationen