
Ich habe ein Skript geschrieben, um den Fakultätsbefehl auszuführen, aber ich erhalte diesen Fehler
((: 1 <= : syntax error: operand expected (error token is "<=")
Ich kann es nicht beheben. Das Symbol <= wurde sowohl mit Leerzeichen als auch ohne Leerzeichen ausprobiert, aber immer dasselbe. Unten ist das gesamte Skript, bei dem der oben angegebene Fehler in der 5. Zeile angezeigt wird
!/usr/bin/bash
i=1 #nie-zero bo tworzy iloczyn
wynik=1 # nie-zero bo tworzy iloczyn
while (($i <= $1))
do
wynik=$(($wynik * $i))
i=$(($i + 1))
done
echo $wynik
Prosze oder Pomoc;(
Antwort1
Sie haben vergessen, Ihrem Skript einen Parameter zu übergeben:
$ bash -xc 'i=1; (($i <= $1))' bash 2 ; echo $?
+ i=1
+ (( 1 <= 2 ))
0
Aber
$ bash -xc 'i=1; (($i <= $1))' bash ; echo $?
+ i=1
+ (( 1 <= ))
bash: ((: 1 <= : syntax error: operand expected (error token is "<= ")
1
Hier gibt es eine Lektion zum Validieren von Eingaben ...