다음과 같은 경우 Bash 스크립트를 실행할 수 없습니다.

다음과 같은 경우 Bash 스크립트를 실행할 수 없습니다.

누군가가 내 스크립트의 오류를 지적할 수 있기를 바랍니다. 내 배움의 원천이 너무 잘못되었기 때문에 혼란스럽습니다.

이 스크립트의 목적:사용자가 입력한 숫자부터 숫자 1까지의 숫자를 계산합니다.

#!/bin/bash

echo -n Enter a number

read number

if (($number > 0))  ; then

index = $number

while [ $index => 1 ]  ; do

echo $index

((index--))



break
done
fi    

그것이 제공하는 오류 :색인: 명령을 찾을 수 없습니다

답변1

  • index = $number=변수에 값을 할당할 때 공백을 사용할 수 없습니다. 사용 index=$number하거나((index = number))
  • [ $index => 1 ]나는 그것이 index1보다 크거나 같은지 확인하고 싶다고 생각합니다. [ $index -ge 1 ]또는((index >= 1))
  • 이 진술을 사용하는 이유는 무엇입니까 break? 루프를 종료하는 데 사용됩니다.
  • if진술도 필수는 아닙니다.
  • read -p옵션을 사용하여 사용자에게 메시지를 추가 할 수도 있습니다.

함께 넣어보세요:

#!/bin/bash

read -p 'Enter a number: ' number

while ((number >= 1)) ; do
    echo $number
    ((number--))
done

답변2

문제는 "if" 앞에 있습니다.

http://tldp.org/LDP/Bash-Beginners-Guide/html/sect_07_01.html

나는 당신이 다음과 같은 것을 원하는 것 같아요 :

#!/bin/bash
echo -n "Enter a number : "
read number
echo $number

if [ $number -gt "0" ]  ; then
  ind="$number"
  while [ $ind -ge "1" ]  ; do
     echo $ind   
    ((ind--))
  done
fi

답변3

그럼 좀 살펴보는 게 좋을 것 같아

man index

변수 이름을 바꾸면 수정된 버전의 스크립트가 작동합니다.

#!/bin/bash

echo -n Enter a number

read num

   if (($num > 0))  ; then

      ind=$num

      while [ $ind -ge 1 ]  ; do

         echo $ind

         ((ind--))

         break
         done
   fi 

관련 정보