Warnung: Ich habe gerade angefangen bash vor kurzem lernen und zu versuchen, eine rekursive Funktion zu tun, die eine Laufzeit berechnen wird ... so ...seltsame Fehler auf Bash-Skript
x0 = 0 x1 = 1 xm = 3 * xm-1 bis 2 * xm-2
Die Funktion, die ich bisher geschrieben habe, ist:
#!/bin/bash
calculate()
{
if [ $1 -eq 0 ]
then
echo "0"
fi
if [ $1 -eq 1 ]
then
echo "1"
fi
if [ $1 -ge 1 ]
then
let var1 = `calculate [ $1-1 ]`;
let var2 = `calculate [ $1-2 ]`;
let var3 = 3*var1-2*var2;
echo var3
fi
}
calculate 3
Aber ich habe einige seltsame Fehler ... und nicht sicher, ob ich es richtig gemacht ... kann Wer sagt mir, was diese Probleme verursacht und meinen Code korrigiert, damit er funktioniert? Ich danke dir sehr.
Fehler:
TP1p1.sh: line 4: [: [: integer expression expected
TP1p1.sh: line 8: [: [: integer expression expected
TP1p1.sh: line 12: [: [: integer expression expected
TP1p1.sh: line 14: let: =: syntax error: operand expected (error token is "=")
TP1p1.sh: line 4: [: [: integer expression expected
TP1p1.sh: line 8: [: [: integer expression expected
TP1p1.sh: line 12: [: [: integer expression expected
TP1p1.sh: line 15: let: =: syntax error: operand expected (error token is "=")
TP1p1.sh: line 16: let: =: syntax error: operand expected (error token is "=")
es funktioniert nur für 5, 3 es zeigt -6 und für 6 Es zeigt 0. :-( – FinalDestiny
Entschuldigung, Ihr Code ist korrekt aber var3 = $ ((3 * (var1-2) * var2)) ist falsch, es sollte $ (((3 * var1) - (2 * var2))) – FinalDestiny
Wie auch immer, du hast mir geholfen, viel zu lernen, vielen Dank. – FinalDestiny