계승 명령을 실행하기 위한 스크립트를 작성했지만 이 오류가 발생합니다.

((: 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

Proszę o pomoc;(

답변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

여기에 입력 유효성 검사에 대한 교훈이 있습니다.

관련 정보