階乗コマンドを実行するスクリプトを書いたのですが、このエラーが発生します

((: 1 <= : syntax error: operand expected (error token is "<=")

修正できません。<= 記号をスペースありとスペースなしの両方で試しましたが、常に同じです。以下は、上記のエラーが 5 行目に表示されるスクリプト全体です。

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

次回もよろしくお願いいたします。

答え1

スクリプトにパラメータを渡すのを忘れました:

$ bash -xc 'i=1; (($i <= $1))' bash 2 ; echo $?
+ i=1
+ (( 1 <= 2 ))
0

しかし

$ bash -xc 'i=1; (($i <= $1))' bash ; echo $?
+ i=1
+ (( 1 <=  ))
bash: ((: 1 <= : syntax error: operand expected (error token is "<= ")
1

ここでは入力の検証についてのレッスンがあります...

関連情報