W
Wolfgang
Foren Gott
Danke Wolfgang! Jetzt funktioniert es!
Wahrscheinlich bin ich nicht darauf gekommen, weil ich erstens noch nie mit Funktionen in der Bash gearbeitet hab und zweitens ungern mit so vielen Klammern wie in Zeile 24 rechne
Zum besseren Verständnis hier nochmal das komplette Skript:
PHP:#!/bin/bash # Variablen initialisieren declare -i zahl1=$1 declare -i zahl2=$2 declare -i fakultaet1=1 declare -i fakultaet2=1 # Wenn $1<$2, dann von=$1 und bis=$2 if [ $zahl1 -lt $zahl2 ]; then declare -i von=$zahl1 declare -i bis=$zahl2 # Wenn $1<$2, dann von=$2 und bis=$1 elif [ $zahl1 -gt $zahl2 ]; then declare -i von=$zahl2 declare -i bis=$zahl1 fi # Funktion fuer Fakultaet definieren: function fak() { if [ $1 -eq 1 ]; then echo 1; else echo $(($1 * $(fak $(($1 - 1))))) fi } # Ueberpruefen, wie viele Argumente uebergeben wurden case $# in 0) # Es gibt KEIN Argument ==> Fehlermeldung ausgeben echo "Sie duerfen nur eine oder zwei Zahlen als Parameter eingeben!";; 1) # Es gibt EIN Argument ==> Fakultaet von $1 berechnen und ausgeben while [ $zahl1 -gt 1 ]; do fakultaet1=$fakultaet1*$zahl1 zahl1=$zahl1-1 done echo "Fakultaet von" $1 "=" $fakultaet1;; 2) # Es gibt ZWEI Argumente ==> Schleife mit allen Fakultaeten von $1 bis $2 berechnen und ausgeben while [ $von -le $bis ]; do fak $von von=$von+1 done;; *) echo "Sie duerfen nur eine oder zwei Zahlen als Parameter eingeben!";; esac
Jo, ne is klar...
Das da oben funktioniert bei dir?
Das brauch ich garnicht starten, um zu wissen, dass es nicht in der bash rennt.
sowas hier meine ich:
Code:
von=0;
von=$von+1
echo $von
0+1
Code:
v=1;
# short
while [ $v -lt 10 ];
do
echo $((v++));
done
# long
A=0
while [ $A -lt 10 ];
do
echo $A;
A=$((A + 1 ));
# oder
((A++));
done
Gruß Wolfgang