Shell/Bash Anfängerfrage


C

Corbin

Hier nochmal für alle dies intressiert der fertige rechner ;)
Er speichert jetzt auch die Ergebnisse in einer neuen Datei, ansonsten so wie vorher:

Bash:
#! /bin/bash

clear

antw="ja"

while test $antw == "ja" -o $antw == "j" -o $antw == "Ja" -o $antw == "J" -o $antw == "y" -o $antw == "yes" -o $antw == "Yes" -o $antw == "Y"
do

echo "Wähle die erste Zahl: "
read z1

if [[ $z1 = [0-9]* && $z1 != *[a-zA-Z]* ]]
then

  echo "Nenne die zweite Zahl: "
  read z2
  if [[ $z2 = [0-9]* && $z1 != *[a-zA-Z]* ]]
    then


        echo -n "Wählen sie aus: 1 - Addition, 2 - Subtraktion, 3 - Multiplikation, 4 - Division: "

        read rz
        echo ""

        case $rz in
                1 ) erg=`expr $z1 + $z2`
                echo $erg >> Ergebnisse
                echo "Das Ergebnis ist: $erg."
                ;;

                2 ) erg=`expr $z1 - $z2`
                echo $erg >> Ergebnisse
                echo "Das Ergebnis ist: $erg."
                ;;

                3 ) erg=`expr $z1 \* $z2`
                echo >> Ergebnisse
                echo "Das Ergebnis ist: $erg."
                ;;

                4 ) erg=`expr $z1 / $z2`

                echo "Das Ergebnis ist: $erg."
                ;;

                * ) echo "Nicht möglich, nur die 4 Grundrechenarten"
                ;;

        esac

  else
    echo ""
    echo "Keine Zahl eingegeben!"
    echo ""
  fi
else
  echo ""
  echo "Keine Zahl eingeben!"
  echo ""
fi

echo ""
echo -n "Noch einmal?"
read antw
if $antw;
        then
                echo ""
                echo "Auf Wiedersehen"
                echo ""
                exit 1
        else
echo ""
fi
done

if test -n $erg;
then
  echo "Vielleicht stattdessen mit bisherigen Ergebnis weiterrechnen?"
  read antw2
        if test $antw2 == "ja" -o $antw2 == "j" -o $antw2 -o $antw2 == "Ja" -o $antw2 == "J" -o $antw2 == "yes" -o $antw2 == "y";
                then

                                echo ""
                                echo "Geben sie ihre Rechenoperation ein: 1 - Addition, 2 - Subtraktion, 3 - Multiplikation, 4 - Division"
                                read rz2
                                echo ""
                                case $rz2 in
                                        "1" ) echo "Geben sie eine Zahl zum hinzuaddieren ein"
                                            read z3
                                            if [[ $z3 = [0-9]* && $z3 != *[a-zA-Z]* ]]
                                              then
                                                erg2=`expr $erg + $z3`
                                                echo >> Ergebnisse
                                                echo "Das Ergebnis ist: $erg2"
                                              else
                                                echo "Keine Zahl eingegeben"

                                      fi
                                        ;;

                                        "3" ) echo "Geben Sie eine Zahl zum multiplizieren ein"
                                            read z3
                                            if [[ $z3 = [0-9]* && $z3 != *[a-zA-Z]* ]]
                                              then
                                                erg2=`expr $erg \* $z3`
                                                echo >> Ergebnisse
                                                echo "Das Ergebnis ist: $erg2"
                                              else
                                                echo "Keine Zahl eingegeben"
                                            fi
                                        ;;

                                        "4" ) echo "Geben Sie eine  Zahl zum dividieren ein"
                                            read z3
                                            if [[ $z3 = [0-9]* && $z3 != *[a-zA-Z]* ]]
                                              then
                                                erg2=`expr $erg / $z3`
                                                echo >> Ergebnisse
                                                echo "Das Ergebnis ist: $erg2"
                                              else
                                                echo "Keine Zahl eingegeben"
                                            fi
                                        ;;

                                        * ) echo "Nicht möglich, nur die 4 Grundrechenarten"
                                        ;;

                                esac


                else echo ""
                     echo "Auf Wiedersehen!"
                     echo ""
                exit 2

             fi

else

  echo ""
  echo "Auf Wiedersehen"
  echo ""

  exit 3

fi


echo ""
echo "Auf Wiedersehen"
echo ""
exit 4:
 
C

Corbin

ups.... punkt 2 übersprungen, da fehlen 10 zeilen
Bash:
#! /bin/bash

clear

antw="ja"

while test $antw == "ja" -o $antw == "j" -o $antw == "Ja" -o $antw == "J" -o $antw == "y" -o $antw == "yes" -o $antw == "Yes" -o $antw == "Y"
do

echo "Wähle die erste Zahl: "
read z1

if [[ $z1 = [0-9]* && $z1 != *[a-zA-Z]* ]]
then

  echo "Nenne die zweite Zahl: "
  read z2
  if [[ $z2 = [0-9]* && $z1 != *[a-zA-Z]* ]]
    then


        echo -n "Wählen sie aus: 1 - Addition, 2 - Subtraktion, 3 - Multiplikation, 4 - Division: "

        read rz
        echo ""

        case $rz in
                1 ) erg=`expr $z1 + $z2`
                echo $erg >> Ergebnisse
                echo "Das Ergebnis ist: $erg."
                ;;

                2 ) erg=`expr $z1 - $z2`
                echo $erg >> Ergebnisse
                echo "Das Ergebnis ist: $erg."
                ;;

                3 ) erg=`expr $z1 \* $z2`
                echo $erg >> Ergebnisse
                echo "Das Ergebnis ist: $erg."
                ;;

                4 ) erg=`expr $z1 / $z2`
                echo $erg >> Ergebnisse
                echo "Das Ergebnis ist: $erg."
                ;;

                * ) echo "Nicht möglich, nur die 4 Grundrechenarten"
                ;;

        esac

  else
    echo ""
    echo "Keine Zahl eingegeben!"
    echo ""
  fi
else
  echo ""
  echo "Keine Zahl eingeben!"
  echo ""
fi

echo ""
echo -n "Noch einmal?"
read antw
if $antw;
        then
                echo ""
                echo "Auf Wiedersehen"
                echo ""
                exit 1
        else
echo ""
fi
done

if test -n $erg;
then
  echo "Vielleicht stattdessen mit bisherigen Ergebnis weiterrechnen?"
  read antw2
        if test $antw2 == "ja" -o $antw2 == "j" -o $antw2 -o $antw2 == "Ja" -o $antw2 == "J" -o $antw2 == "yes" -o $antw2 == "y";
                then

                                echo ""
                                echo "Geben sie ihre Rechenoperation ein: 1 - Addition, 2 - Subtraktion, 3 - Multiplikation, 4 - Division"
                                read rz2
                                echo ""
                                case $rz2 in
                                        "1" ) echo "Geben sie eine Zahl zum hinzuaddieren ein"
                                            read z3
                                            if [[ $z3 = [0-9]* && $z3 != *[a-zA-Z]* ]]
                                              then
                                                erg2=`expr $erg + $z3`
                                                echo $erg >> Ergebnisse
                                                echo "Das Ergebnis ist: $erg2"
                                              else
                                                echo "Keine Zahl eingegeben"
                                            fi
                                        ;;

                                        "2" ) echo "Geben sie eine Zahl zum abziehen ein"
                                            read z3
                                            if [[ $z3 = [0-9]* && $z3 != *[a-zA-Z]* ]]
                                              then
                                                erg2=`expr $erg - $z3`
                                                echo $erg >> Ergebnisse
                                                echo "Das Ergebnis ist: $erg2"
                                              elo ""
                                              e
                                                echo "Keine Zahl eingegeben"
                                            fi
                                        ;;

                                        "3" ) echo "Geben Sie eine Zahl zum multiplizieren ein"
                                            read z3
                                            if [[ $z3 = [0-9]* && $z3 != *[a-zA-Z]* ]]
                                              then
                                                erg2=`expr $erg \* $z3`
                                                echo $erg >> Ergebnisse
                                                echo "Das Ergebnis ist: $erg2"
                                              else
                                                echo "Keine Zahl eingegeben"
                                            fi
                                        ;;

                                        "4" ) echo "Geben Sie eine  Zahl zum dividieren ein"
                                            read z3
                                            if [[ $z3 = [0-9]* && $z3 != *[a-zA-Z]* ]]
                                              then
                                                erg2=`expr $erg / $z3`
                                                echo $erg >> Ergebnisse
                                                echo "Das Ergebnis ist: $erg2"
                                              else
                                                echo "Keine Zahl eingegeben"
                                            fi
                                        ;;

                                        * ) echo "Nicht möglich, nur die 4 Grundrechenarten"
                                        ;;

                                esac


                else echo ""
                     echo "Auf Wiedersehen!"
                     echo ""
                exit 2

             fi

else

  echo ""
  echo "Auf Wiedersehen"
  echo ""

  exit 3

fi

echo ""
echo "Auf Wiedersehen"
echo ""
exit 4:

Jetzt müsste es vollständig sein
 
C

Corbin

Tut mir leid, dass ich euch noch einmal stören muss, aber kann mir einer von euch vielleicht nochmal helfen?

Ich habe ja jetzt den taschenrechner ganz fertig, das einzige was ich machen muss ist jetzt die Datei, in der alle ergebnisse gescpeichert werden (Ergebnisse) mit einem neuen Script durchsuchen lassen und sowohl die Anzahl der Ergebnisse (Anzahl der Zeilen) als auch eine Auflistung aller Ergebnisse auszugeben...

Kann mir dabei vielleicht ejamdn helfen, denn ich hab keine ahnung wie ich das machen soll, und sowas wie ein ansatz wär schon echt gut, denn ich weiß nichtmals wie man die datei angibt die durchsucht werden soll, geschweige denn was ich da genau angeben muss...